Tulis sebuah program atau fungsi bernama yang akan menampilkan atau mengembalikan urutan n
ke bilangan bulat dalam urutan Iccanobif, didokumentasikan pada OEIS sebagai A014258 . Perhatikan bahwa hanya elemen nol di urutan ( 0
) yang akan dicetak jika n
nol.
Urutan ini dihasilkan dengan memulai seperti urutan Fibonacci standar, tetapi setelah menambahkan dua angka sebelumnya, Anda membalik hasilnya dan menjatuhkan angka nol di depan. Fakta yang menarik, setidaknya bagi saya, adalah bahwa urutan ini tidak meningkat secara ketat (lihat daftar di bawah). Tampaknya juga (dan mungkin) benar-benar lebih besar dari atau sama dengan urutan Fibonacci.
Input program Anda harus berupa bilangan bulat.
20 angka pertama dari urutan disediakan di sini untuk kesenangan Anda:
0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769
Celah standar dilarang.
Kemenangan program terpendek.
EDIT: Menambahkan catatan untuk memperjelas bahwa urutan dimulai dengan elemen n
nol dan harus dimasukkan jika nol.
Contoh kemungkinan IO:
0 -> 0
1 -> 0 1
6 -> 0 1 1 2 3 5 8
17 -> [0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297]
Sekarang ada beberapa jawaban, di bawah ini adalah implementasi saya di Python 2 yang saya susah payah sembunyikan dengan markup:
Berulang:
#Tutup untuk program awal saya. 73 byte. Perlu dicatat juga bahwa program ini tidak dapat mencapai stack overflow. Ini berjalan selama n = 5000 dalam waktu kurang dari 10 detik.i,a,b=input(),0,1 print a while i:print b;i,a,b=i-1,b,int(str(a+b)[::-1])
Rekursif:
# Perhatikan bahwa ini akan mencetakn
baris baru. 64 byte Akan mengenai kesalahan stack overflow untuk nilai n yang besar.def f(n,i=0,j=1):print i,n and f(n-1,j,int(str(i+j)[::-1]))or'';