Python 3.3.4函数没有计算过去的某个参数

时间:2014-03-27 00:14:14

标签: python

我正在解决Euler问题集#2,我发现函数与我想要做的事情相关,至少部分是因为我需要对fibonacci序列中的偶数进行修改。我正在尝试打印斐波那契数字,直到某一点,n。

def fib(n):
if n == 1:
    return 1
elif n == 0:
    return 0
else:
    return fib(n-1) + fib(n-2)

给予

>>> fib(13)
233

然而

>>> fib(200)

什么都不返回。我不确定是否要花很长时间来计算,或者诸如此类的东西。我可以在C ++中尝试这个,但是首先想从这里获得一些知识。

1 个答案:

答案 0 :(得分:1)

只需花费很长时间进行计算,因为您已经多次递归调用fib()。如果您按如下方式添加一行,则可以在运行时获取状态更新。由于递归量(如果它甚至完成),它将花费很长时间。

def fib(n):
    print("Fibonacci: {0}".format(n))
    if n == 1:
        return 1
    elif n == 0:
        return 0
    else:
        return fib(n-1) + fib(n-2)