我正在上编程课程,并且有关于斐波那契和和递归的问题。 规则如下:
编写函数fibsum(N),该函数返回小于N的所有偶数值斐波纳契项的和。
我想我已经很接近了,但是我的求和不能正常工作,我也希望这个函数工作得很高(至少像N = 10 ** 6),这是到目前为止的代码
def fibsum(n, memo = {}):
added = 0
if n<0:
return 0
if n== 1 or n == 0:
return 1
else:
if (n-1) in memo.keys():
f1 = memo[n-1]
else:
memo[n-1] = fibsum(n-1)
f1 = memo[n-1]
if (n-2) in memo.keys():
f2 = memo[n-2]
else:
memo[n-2] = fibsum(n-2)
f2 = memo[n-2]
if f1+f2 < 44:
if (f1+f2) % 2 == 0:
added += f1+f2
print ("look here",added)
return added
print (f1+f2)
return f1 + f2
我留下了一些打印语句,因为我想调试问题,但是我没有运气。