这里有一个尾递归函数:
def fib(n, sum):
if n < 1:
return sum
else:
return fib(n-1, sum+n)
c = 998
print(fib(c, 0))它工作到n=997,然后就会中断并输出一个“相对地超过最大递归深度”。
发布于 2018-07-27 13:11:05
我建议不要对这样的问题使用递归-列表 ,完全避免递归。
def fibonacci(n):
f = [0,1,1]
for i in xrange(3,n):
f.append(f[i-1] + f[i-2])
return 'The %.0fth fibonacci number is: %.0f' % (n,f[-1])发布于 2018-07-27 14:31:51
这是为了避免堆栈溢出。Python解释器限制递归的深度,以帮助你避免无限递归,从而导致堆栈溢出。尝试增加递归限制(sys.set递归限制),或者在没有递归的情况下重写代码。
https://stackoverflow.com/questions/-100005848
复制相似问题