Seperti yang mungkin Anda ketahui, Angka Fibonacci adalah angka yang merupakan jumlah dari dua angka sebelumnya dalam seri.
Digit Fibonacci ™ adalah angka yang merupakan jumlah dari dua digit sebelumnya .
Misalnya, untuk seri awal 1,1
, seri akan menjadi 1,1,2,3,5,8,13,4,7,11,2...
Perubahan terjadi setelah 13
, di mana, alih-alih menambahkan 8+13
, Anda menambahkan 1+3
. Serial loop di akhir, di mana 4+7=11
, dan 1+1=2
, sama dengan seri dimulai.
Sebagai contoh lain, seri awal 2,2
: 2,2,4,6,10,1,1,2,3,5,8,13,4,7,11,2,3...
. Yang satu ini dimulai secara unik, tetapi setelah jumlah digit 10
, Anda berakhir dengan 1+0=1, 0+1=1
, dan seri berlanjut - dan loop - dengan cara yang sama seperti 1,1
seri.
Tantangan
Diberikan input integer 0≤n≤99
, hitung loop dalam seri Fibonacci Digit yang dimulai dengan dua digit itu. (Anda tentu saja diperbolehkan untuk mempertimbangkan bilangan bulat di luar rentang ini, tetapi itu tidak diperlukan.) Jika diberi input satu digit, kode Anda harus menafsirkannya untuk menunjukkan awal seri 0,n
.
Semua angka dalam loop yang dua digit harus dikeluarkan sebagai dua digit. Jadi, misalnya, loop untuk 1,1
berisi 13
, bukan 1,3
.
Output dimulai dengan angka pertama dalam loop. Jadi, berdasarkan batasan di atas, loop untuk 1,1
dimulai dengan 2
, sejak 1,1
dan 11
dihitung secara terpisah.
Setiap jumlah output dapat dipisahkan oleh apa pun yang Anda inginkan, asalkan konsisten. Dalam semua contoh saya, saya menggunakan koma, tetapi spasi, jeda baris, huruf acak, dll. Semua diperbolehkan, selama Anda selalu menggunakan pemisahan yang sama. Jadi 2g3g5g8g13g4g7g11
adalah hasil hukum untuk 1
, tetapi 2j3g5i8s13m4g7sk11
tidak. Anda dapat menggunakan string, daftar, array, apa pun, asalkan Anda memiliki angka yang benar dalam urutan yang benar dipisahkan oleh pemisah yang konsisten. Membatasi seluruh output juga diperbolehkan (mis. (5,9,14)
Atau [5,9,14]
, dll.).
Kasus uji:
1 -> 2,3,5,8,13,4,7,11
2 -> 2,3,5,8,13,4,7,11
3 -> 11,2,3,5,8,13,4,7
4 -> 3,5,8,13,4,7,11,2
5 -> 2,3,5,8,13,4,7,11
6 -> 3,5,8,13,4,7,11,2
7 -> 14,5,9
8 -> 13,4,7,11,2,3,5,8
9 -> 11,2,3,5,8,13,4,7
0 -> 0
14 -> 5,9,14
59 -> 5,9,14
Ini adalah kode-golf , sehingga jumlah byte terendah menang.
14
dan 59
memberikan hasil yang sama. Jika 59
diartikan sebagai awal 5,9
dan membiarkan itu sebagai bagian dari loop maka tentunya 14
harus menjadi awal dari loopnya?
0,1,1,2,3,5,8,13,4,7,11,2,3
. Pertama kali loop berulang adalah pada detik 2
.
1,4,5,9,14,5
dan 5,9,14,5,9
. Keduanya diulang mulai dengan yang kedua 5
. Seperti yang saya katakan sebelumnya, hanya input yang dipisahkan; nomor-nomor selanjutnya menyimpan digit mereka bersama-sama dalam urutan.