我正在尝试解决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
。
为什么会这样,以及我最初写的内容有什么问题?
答案 0 :(得分:3)
问题出在您的列表i
中。它以[1, 1, 2, ...]
而不是[1, 2, ...]
开头。使用i.append(b)
解决该问题。