Fibonacci数字不会被打印到F(996)之外

Bun*_*bit 1 python

我写了这个小片段来计算斐波纳契数.它适用于高达996的数字,从997开始追溯.我无法弄清楚问题是什么.它与maximum_recursion_count有关吗?

def fib(n):
 if n==0:
  return 0
 elif n==1:
  return 1
 else:
  return fib(n-1)+n
Run Code Online (Sandbox Code Playgroud)

Dav*_*d Z 5

大概.看看sys.getrecursionlimit().默认值为1000,听起来它可能导致您遇到的问题:一旦堆栈上有1000帧(即略少于1000个递归函数调用),您将在下一个函数上出错呼叫.

您可以使用递增限制设置为更大的值sys.setrecursionlimit,但是存在一个与平台相关的最大值(这意味着您可能必须通过试验和错误来确定它是什么).