Schreiben Sie ein Programm oder eine benannte Funktion, die die Sequenz bis zur n
th Ganzzahl in der Iccanobif-Sequenz ausgibt oder zurückgibt, die in OEIS als A014258 dokumentiert ist . Beachten Sie, dass nur das nullte Element in der Sequenz ( 0
) gedruckt wird, wenn n
Null ist.
Die Sequenz wird wie die Standard-Fibonacci-Sequenz erzeugt, aber nachdem Sie die beiden vorherigen Zahlen addiert haben, kehren Sie das Ergebnis um und löschen alle führenden Nullen. Zumindest für mich ist es eine interessante Tatsache, dass diese Reihenfolge nicht unbedingt zunimmt (siehe Liste unten). Es scheint auch streng größer oder gleich der Fibonacci-Sequenz zu sein (und ist es wahrscheinlich auch).
Die Eingabe Ihres Programms muss eine Ganzzahl sein.
Die ersten 20 Nummern der Sequenz werden hier für Ihr Sehvergnügen bereitgestellt:
0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769
Standardlücken sind verboten.
Kürzeste Sendung gewinnt.
BEARBEITEN: Es wurde ein Hinweis hinzugefügt, um zu verdeutlichen, dass die Sequenz mit dem nullten Element beginnt und eingeschlossen werden sollte, wenn n
Null ist.
Beispiel IO Möglichkeiten:
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]
Nachstehend finden Sie einige Antworten auf meine Implementierungen in Python 2, die ich intensiv mit Markup ausgeblendet habe:
Iterativ:
#Nächste zu meinem ursprünglichen Programm. 73 Bytes. Es ist auch zu beachten, dass dieses Programm kann keinen Stapelüberlauf erreichen. Es läuft für n = 5000 in weniger als 10 Sekunden.i,a,b=input(),0,1 print a while i:print b;i,a,b=i-1,b,int(str(a+b)[::-1])
Rekursiv:
#Beachten Sie, dassn
hiermit nachgestellte Zeilenumbrüche gedruckt werden. 64 Bytes. Trifft einen Stapelüberlauffehler für große Werte von n.def f(n,i=0,j=1):print i,n and f(n-1,j,int(str(i+j)[::-1]))or'';