Écrivez un programme ou une fonction nommée qui n
générera ou renverra la séquence jusqu'au nombre entier dans la séquence Iccanobif, documenté sur OEIS sous le numéro A014258 . Notez que seul l'élément zéro dans la séquence ( 0
) sera imprimé sin
est zéro.
La séquence est générée en démarrant comme la séquence Fibonacci standard, mais après avoir ajouté les deux nombres précédents, vous retournez le résultat et supprimez les zéros de tête. Un fait intéressant, du moins pour moi, est que cette séquence n'est pas strictement croissante (voir la liste ci-dessous). Elle semble également être (et est probablement) strictement supérieure ou égale à la séquence de Fibonacci.
L'entrée de votre programme doit être un entier.
Les 20 premiers numéros de la séquence sont fournis ici pour votre plus grand plaisir:
0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769
Les failles standard sont interdites.
Le programme le plus court gagne.
EDIT: Ajout d'une note pour préciser que la séquence commence par l'élément zeroth et doit être incluse si n
est zéro.
Exemples de possibilités d'E / S:
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]
Maintenant qu'il y a plusieurs réponses, voici mes implémentations en Python 2 que j'ai travaillé dur pour cacher avec le balisage:
Itératif:
# Plus proche de mon programme initial. 73 octets. Il convient également de noter que ce programme ne peut pas atteindre un débordement de pile. Il fonctionne pour n = 5000 en moins de 10 secondes.i,a,b=input(),0,1 print a while i:print b;i,a,b=i-1,b,int(str(a+b)[::-1])
Récursif:
# Notez que cela imprimen
des nouvelles lignes de fin. 64 octets. Frappera une erreur de débordement de pile pour les grandes valeurs de n.def f(n,i=0,j=1):print i,n and f(n-1,j,int(str(i+j)[::-1]))or'';