Tantangan
Anda harus menulis sebuah program yang mengambil bilangan bulat positif n
sebagai input, dan mengeluarkan angka n
Fibonacci th (disingkat Fib # seluruh) yang berisi n
Fib # sebagai subtring. Untuk tujuan tantangan ini, urutan Fibonacci dimulai dengan a 1
.
Berikut adalah beberapa contoh yang dapat Anda gunakan sebagai kasus uji, atau sebagai contoh untuk mengklarifikasi tantangan (untuk yang terakhir, silakan tinggalkan komentar di bawah ini untuk menjelaskan apa yang Anda temukan tidak jelas).
n=1
Fib#s: 1
^1 1st Fib# that contains a 1 (1st Fib#)
Output: 1
n=2
Fib#s: 1, 1
^1 ^2 2nd Fib# that contains a 1 (2nd Fib#)
Output: 1
n=3
Fib#s: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233
^1 ^2 ^3 3rd Fib# that contains a 2 (3rd Fib#)
Output: 233
n=4
Output: 233
n=5
Output: 6765
n=6
Output: 28657
n=7
Output: 1304969544928657
n=8
Output: 14472334024676221
n=9
Output: 23416728348467685
n=10
Fib#s: 1, ..., 34, 55, 89, ..., 63245986, 102334155, 165580141, ..., 2880067194370816120, 4660046610375530309
^1 ^2 ^3 ^10 10th Fib# that contains a 55 (10th Fib#)
Output: 4660046610375530309
Seperti biasa, ini adalah kode-golf , jadi lakukan penghitungan byte terendah yang dimungkinkan.
Jika ada sesuatu yang membingungkan / tidak jelas, silakan tinggalkan komentar.
(Tantangan ini didasarkan pada tantangan lain yang saya posting: Cetak nth prime yang berisi n )
n=25
(output memiliki 1186 digit), kemudian terbunuh untuk n=26
(3085 digit dikompilasi di laptop saya sendiri). Tampaknya ada lompatan dalam kesulitan setiap kali fib(n)
mendapat satu digit lagi (seperti yang diharapkan). Lompatan berikutnya, 31, memiliki 12990 digit pada hasil akhir.
n=5
testcase, karena saya baru saja membuat kesalahan konyol di mana saya menulis cek yang menghitung beberapa kali jika memiliki substring lebih dari satu kali.n=5
akan menangkap itu karena55
.