Kita semua akrab dengan deret Fibonacci :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
Namun, alih-alih, f(n) = f(n-1) + f(n-2)
kami akan mengambil jumlah digital dari 2 entri sebelumnya.
Urutan masih harus dimulai dengan 0, 1
, setelah itu perbedaannya jelas dengan cepat. Daftar ini diindeks 0, Anda dapat menggunakan 1-diindeks juga, menyatakan yang Anda gunakan.
f(0) = 0
f(1) = 1
f(2) = 1 # 0 + 1
f(3) = 2 # 1 + 1
f(4) = 3 # 1 + 2
f(5) = 5 # 2 + 3
f(6) = 8 # 3 + 5
f(7) = 13 # 8 + 5
f(8) = 12 # 8 + 1 + 3
f(9) = 7 # 1 + 3 + 1 + 2
f(10) = 10 # 1 + 2 + 7
f(11) = 8 # 7 + 1 + 0
f(12) = 9 # 1 + 0 + 8
f(13) = 17 # 8 + 9
f(14) = 17 # 9 + 1 + 7
f(15) = 16 # 1 + 7 + 1 + 7
f(16) = 15 # 1 + 7 + 1 + 6
f(17) = 13 # 1 + 6 + 1 + 5
f(18) = 10 # 1 + 5 + 1 + 3
f(19) = 5 # 1 + 3 + 1 + 0
f(20) = 6 # 1 + 0 + 5
f(21) = 11 # 5 + 6
f(22) = 8 # 6 + 1 + 1
f(23) = 10 # 1 + 1 + 8
f(24) = 9 # 8 + 1 + 0
f(25) = 10 # 1 + 0 + 9
f(26) = 10 # 9 + 1 + 0
f(27) = 2 # 1 + 0 + 1 + 0
(After this point it repeats at the 3rd term, 0-indexed)
Catatan: Saya tidak melihat pengulangan sampai saya memposting tantangan itu sendiri, dan di sini saya berpikir tidak mungkin untuk menulis tantangan Fibonacci novel baru.
Tugas Anda adalah, diberi nomor n
, menampilkan digit ke-n dari urutan ini.
Pertama 3 digit: [0,1,1]
,
Pola berulang 24 digit: [2,3,5,8,13,12,7,10,8,9,17,17,16,15,13,10,5,6,11,8,10,9,10,10]
Petunjuk: Anda mungkin dapat memanfaatkan pengulangan ini untuk keuntungan Anda.
Ini adalah kode-golf , byte-count terendah adalah pemenangnya.
BONUS: Jika Anda menggunakan pengulangan dalam jawaban Anda, saya akan memberikan jawaban byte-count terendah yang mengambil keuntungan dari pengulangan dalam urutan hadiah 100 poin. Ini harus diserahkan sebagai bagian dari jawaban awal Anda, setelah jawaban awal Anda. Lihat posting ini sebagai contoh dari apa yang saya bicarakan: https://codegolf.stackexchange.com/a/108972/59376
Agar memenuhi syarat untuk bonus ini, kode Anda harus dijalankan dalam waktu yang konstan ( O(1)
) dengan penjelasan.
Pemenang Bonus: Dennis https://codegolf.stackexchange.com/a/108967/59376 <Dennis menang.
Implementasi Paling Unik: https://codegolf.stackexchange.com/a/108970/59376
(Juga akan menerima 100 poin, diselesaikan setelah jawaban yang benar dipilih)
%24
solusi "normal"?
O(1)
. Kode Anda harus berjalan dalam waktu yang konstan, jika itu benar-benar mengeksploitasi pengulangan.