我想解决 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
1089154
但是,如果我将最后一行的第二行替换为 e = [x for x in i if x % 2] ,我似乎得到了正确的答案, 4613732 。
e = [x for x in i if x % 2]
4613732
为什么会这样,我最初写的有什么错?
问题在您的列表中 i .它开始于 [1, 1, 2, ...] 而不是 [1, 2, ...] 使用 i.append(b) 解决这个问题。
i
[1, 1, 2, ...]
[1, 2, ...]
i.append(b)