n
OEISにA014258として文書化されている、Iccanobifシーケンスのth番目までのシーケンスを出力または返すプログラムまたは名前付き関数を作成します。がゼロの0
場合、シーケンスのゼロ番目の要素()のみが出力されることに注意してくださいn
。
シーケンスは、標準のフィボナッチシーケンスと同様に開始することで生成されますが、前の2つの数値を追加した後、結果を反転し、先行ゼロを削除します。少なくとも私にとって興味深い事実は、このシーケンスが厳密に増加していないことです(以下のリストを参照)。また、厳密にフィボナッチ数列以上であるようです(おそらくそうです)。
プログラムの入力は整数でなければなりません。
シーケンスの最初の20の数字は、視聴の楽しみのためにここに提供されています。
0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769
標準的な抜け穴は禁止されています。
最短のプログラムが勝ちます。
編集:シーケンスがゼロ番目の要素で始まり、ゼロの場合に含める必要があることを明確にするためのメモを追加しましたn
。
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]
いくつかの答えがあるので、マークアップで隠そうと懸命に取り組んだPython 2での実装を以下に示します。
反復:
#私の最初のプログラムに最も近い。73バイト。また、このプログラムは スタックオーバーフローに到達できません。10秒未満でn = 5000実行されます。i,a,b=input(),0,1 print a while i:print b;i,a,b=i-1,b,int(str(a+b)[::-1])
再帰的:
#これはn
末尾の改行を出力することに注意してください。64バイト。 nの値が大きい場合、スタックオーバーフローエラーが発生します。def f(n,i=0,j=1):print i,n and f(n-1,j,int(str(i+j)[::-1]))or'';