编写程序或命名函数,该程序或函数将输出或返回序列,直到n
Iccanobif序列中的第th个整数,在OEIS上记录为A014258。请注意,0
如果n
为零,则仅打印序列()中的第零个元素。
该序列是通过像标准Fibonacci序列一样开始而生成的,但是在将前两个数字相加后,可以翻转结果并删除所有前导零。至少对我而言,一个有趣的事实是该序列没有严格增加(请参见下面的列表)。它似乎也(可能)严格大于或等于斐波那契数列。
程序的输入必须是整数。
为了您的观看乐趣,此处提供了序列的前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'';