Dalam kode golf ini, Anda harus menentukan arah tembakan terpendek yang hits persis n bantal sebelum jatuh ke dalam saku.
Meja biliar adalah meja biliar 6 saku dengan karakteristik sebagai berikut:
- Dimensi adalah variabel ( a x b )
- Tanpa gesekan: bola akan bergulir selamanya hingga jatuh ke dalam saku
- Ukuran kantong dan bola hampir nol. Ini berarti bahwa bola akan jatuh di saku hanya jika mereka memiliki posisi yang sama.
- Bola ditempatkan di lubang kiri bawah di awal (tetapi tidak jatuh di dalamnya)
Buat program atau fungsi penuh yang mengambil dimensi ( a , b ) dari tabel dan jumlah bantal untuk menekan n sebagai input dan mengembalikan sudut dalam derajat jalur terpendek yang memukul tepat n bantal sebelum jatuh ke saku.
- a > 0
- b > 0
- 0 <= n <10000000
- 0 < alpha <90 (dalam derajat) presisi: setidaknya 10 ^ -6
contoh:
dengan a = 2, b = 1, n = 1 ada tiga jalur yang mungkin: (1) (2) (3) pada gambar berikut. angka (1) adalah yang terpendek sehingga output harus atan (2) = 63.43494882292201 derajat
Solusi untuk a = 2, b = 1, n = 4 adalah atan (4/3) = 53.13010235415598 derajat
sampel uji:
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
Ini golf kode / biliar: kode terpendek menang!
n
bantal, atau setidaknyan
bantal?