斐波纳契总结和记忆

我正在上编程课程,并且有关于斐波那契和和递归的问题。 规则如下:

编写函数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          

我留下了一些打印语句,因为我想调试问题,但是我没有运气。