Skip to main content
 首页 » 编程设计

python之低于 400 万的偶数斐波那契数之和之Python

2025年05月04日10duanxz

我正在用 python 尝试第二个 Project Euler 问题,想了解为什么我的代码不起作用。

此代码查找低于 400 万的偶数斐波那契数的总和

counter = 2 
total = 0 
while counter <= 4000000: 
    if counter % 2 == 0: 
        total+= counter     
    counter+= (counter -1) 
print total 

此代码将输出:2

如果我打印它输出的计数器:4194305

我假设这是执行 if 语句的问题,因为 while 循环正常运行并且计数器也在正确递增。

请您参考如下方法:

问题出在 counter+= (counter -1) 行。当你应该这样做的时候,你把它加到它自己上(减 1):

a, b = 1, 1 
total = 0 
while a <= 4000000: 
    if a % 2 == 0: 
        total += a 
    a, b = b, a+b  # the real formula for Fibonacci sequence 
print total