我正在用 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
