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



这个脚本可以给我

  1. 所有斐波那契数,最多 4000000

  2. 给我所有偶数的总和,最多 4000000。

但是,它不能满足以下要求,我想知道如何做到这一点。

我的脚本:

#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)

问题是:

斐波那契数列中的每个新项都是通过添加前两个项生成的。
从 1 和 2 开始,前 10 个术语将是:

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

通过考虑斐波那契数列中值不超过 4 的项 万,求偶值项之和。

您应该

打印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

最新更新