首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的最大递归深度是多少,以及如何增加它?

Python中的最大递归深度是多少,以及如何增加它?
EN

Stack Overflow用户
提问于 2018-07-27 04:49:49
回答 2查看 0关注 0票数 0

这里有一个尾递归函数:

代码语言:txt
复制
def fib(n, sum):
    if n < 1:
        return sum
    else:
        return fib(n-1, sum+n)

c = 998
print(fib(c, 0))

它工作到n=997,然后就会中断并输出一个“相对地超过最大递归深度”。

EN

回答 2

Stack Overflow用户

发布于 2018-07-27 13:11:05

我建议不要对这样的问题使用递归-列表 ,完全避免递归。

代码语言:txt
复制
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])
票数 0
EN

Stack Overflow用户

发布于 2018-07-27 14:31:51

这是为了避免堆栈溢出。Python解释器限制递归的深度,以帮助你避免无限递归,从而导致堆栈溢出。尝试增加递归限制(sys.set递归限制),或者在没有递归的情况下重写代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档