В этом коде гольф вам нужно будет определить направление самого короткого выстрела, который попадает ровно на n подушек, прежде чем попасть в карман.
Бильярдный стол представляет собой 6-ти карманный бильярдный стол со следующими характеристиками:
- Размеры переменные ( а х б )
- Без трения: мяч будет катиться вечно, пока не упадет в карман
- Карманы и размеры мяча практически равны нулю. Это означает, что мяч попадет в карман только в том случае, если они имеют одинаковое положение.
- Мяч помещается в нижнее левое отверстие в начале (но не падает в него)
Создайте полную программу или функцию, которая принимает размеры ( a , b ) таблицы и количество подушек для попадания n в качестве входных данных и возвращает угол в градусах кратчайшего пути, ударяя ровно по n подушкам, прежде чем попасть в карман.
- а > 0
- б > 0
- 0 <= n <10000000
- Точность 0 < альфа <90 (в градусах): не менее 10 ^ -6
Примеры :
при a = 2, b = 1, n = 1 возможны три пути: (1) (2) (3) на следующем рисунке. число (1) самое короткое, поэтому на выходе должно быть atan (2) = 63,43494882292201 градусов
Решение для a = 2, b = 1, n = 4 - это atan (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
подушки?