n
OEIS'de A014258 olarak belgelenen Iccanobif dizisindeki diziyi tam sayıya kadar çıkaran veya döndüren bir program veya adlandırılmış işlev yazın . Sıfır 0
ise n
, yalnızca ( ) dizisindeki sıfırıncı öğenin yazdırılacağını unutmayın .
Dizi, standart Fibonacci dizisi gibi başlayarak üretilir, ancak önceki iki sayıyı ekledikten sonra sonucu çevirirsiniz ve baştaki sıfırları düşürürsünüz. En azından benim için ilginç bir gerçek, bu dizinin kesinlikle artmamasıdır (aşağıdaki listeye bakınız). Ayrıca, Fibonacci dizisine kesinlikle eşit veya ondan daha büyük (ve muhtemelen de) görünüyor.
Programınızın girişi bir tamsayı olmalıdır.
Dizinin ilk 20 numarası, görüntüleme zevkiniz için burada verilmiştir:
0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769
Standart boşluklar yasaktır.
En kısa program kazanır.
EDIT: Dizinin sıfırıncı eleman ile başladığını ve n
sıfır ise dahil edilmesi gerektiğini açıklığa kavuşturmak için bir not eklendi .
Örnek IO olanakları:
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]
Şimdi birkaç cevap olduğuna göre, aşağıda Python 2'deki işaretlemeyle gizlemek için çok çalıştığım uygulamalar:
yinelemeli:
# İlk programıma en yakın olanı. 73 bayt. Ayrıca bu program not edilmelidir yığın taşmasına ulaşılamıyor. 10 saniyeden az bir sürede n = 5000 için çalışır.i,a,b=input(),0,1 print a while i:print b;i,a,b=i-1,b,int(str(a+b)[::-1])
özyineli:
#Bununn
sondaki yeni satırları yazdırdığını unutmayın . 64 bayt. N'nin büyük değerleri için yığın taşması hatasına çarpacak.def f(n,i=0,j=1):print i,n and f(n-1,j,int(str(i+j)[::-1]))or'';