У цьому коді гольфу вам доведеться визначити напрямок найкоротшого пострілу, який вражає рівно n подушок, перш ніж потрапити в кишеню.
Більярдний стіл - це 6-ти кишеньковий столик із такими характеристиками:
- Розміри змінні ( a x b )
- Без тертя: куля буде котитися вічно, поки не потрапить у кишеню
- Розміри кишень і кульок майже дорівнюють нулю. Це означає, що куля впаде в кишеню, лише якщо вони мають однакове положення.
- Куля розміщується в нижньому лівому отворі на початку (але не потрапляє в нього)
Створіть повну програму або функцію, яка приймає розміри ( a , b ) таблиці та кількість подушок, щоб потрапити на n як вхід, і повертає кут у градусах найкоротшого шляху, вражаючи рівно n подушок, перш ніж потрапити в кишеню.
- a > 0
- b > 0
- 0 <= n <10000000
- 0 < альфа <90 (у градусах) точність: не менше 10 ^ -6
приклади:
при a = 2, b = 1, n = 1 є три можливі шляхи: (1) (2) (3) на наступному малюнку. число (1) є найкоротшим, тому вихід повинен бути атан (2) = 63,43494882292201 градусів
Рішення для a = 2, b = 1, n = 4 - атан (4/3) = 53,13010235415598 градусів
тестові зразки:
a = 2, b = 1, n = 1, -> alpha = 63.43494882292201
a = 2, b = 1, n = 2, -> alpha = 71.56505117707799
a = 2, b = 1, n = 3, -> alpha = 75.96375653207353
a = 2, b = 1, n = 4, -> alpha = 53.13010235415598
a = 2, b = 1, n = 5, -> alpha = 59.03624346792648
a = 2, b = 1, n = 6, -> alpha = 81.86989764584403
a = 4.76, b = 3.64, n = 27, -> alpha = 48.503531644784466
a = 2, b = 1, n = 6, -> alpha = 81.86989764584403
a = 8, b = 3, n = 33, -> alpha = 73.24425107080101
a = 43, b = 21, n = 10005, -> alpha = 63.97789961246943
Це код / більярдний гольф: виграє найкоротший код!
n
подушки, або принаймніn
подушки?