为什么这对项目欧拉第2部分不起作用? (Python)包括项目euler指令

时间:2013-11-14 01:26:32

标签: python

这个脚本可以给我

  1. 所有斐波那契数字最高为4000000

  2. 给我所有偶数的总和,最高可达4000000.

  3. 但它不能满足下面的要求,我想知道如何做到这一点。

    我的剧本:

    #Problem 2
    P2 = 0
    fib= 0
    f1 = 1
    f2 = 0
    debugP2 = []
    while fib < 4000000:
        fib = f1 + f2
        f2 = f1
        f1 = fib
        if fib % 2 == 0:
            P2 += fib
            debugP2.append(fib)
    print(debugP2)
    print(fib)
    

    问题是:

      

    Fibonacci序列中的每个新术语都是通过添加前两个术语生成的     从1和2开始,前10个术语将是:

         

    1,2,3,5,8,13,21,34,55,89,......

         

    考虑Fibonacci序列中的值不超过4的项    百万,找到偶数值的总和。

1 个答案:

答案 0 :(得分:2)

您应该打印P2而不是fib

#Problem 2
P2 = 0
fib= 0
f1 = 1
f2 = 0
debugP2 = []
while fib < 4000000:
    fib = f1 + f2
    f2 = f1
    f1 = fib
    if fib % 2 == 0:
        P2 += fib
        debugP2.append(fib)
print(P2) # Its not fib

<强>输出

4613732

修改:您可以像这样缩短您的程序

P2, fib, f1, f2 = 0, 0, 1, 0
while fib < 4000000:
    fib, f2 = f1 + f2, f1
    f1 = fib
    if fib % 2 == 0:
        P2 += fib
print(P2) # Its not fib

<强>输出

4613732