我正在解决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 ++中尝试这个,但是首先想从这里获得一些知识。
答案 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)