无法获得Project Euler#2

时间:2018-04-05 15:33:06

标签: python

我正在尝试解决Project Euler Problem #2

这就是我写的:

a = b = 1
i = []
while b <= 4000000:
    i.append(a)
    a, b = b, a + b
e = [x for x in i if not x % 2]
print(sum(e))

有了这个,我得到1089154

但是,如果我用第二行替换 e = [x for x in i if x % 2],我似乎得到了正确答案,4613732

为什么会这样,以及我最初写的内容有什么问题?

1 个答案:

答案 0 :(得分:3)

问题出在您的列表i中。它以[1, 1, 2, ...]而不是[1, 2, ...]开头。使用i.append(b)解决该问题。