我有,我认为是Project Euler问题 2的有效解决方案(在斐波那契数列中找到所有偶数,最多 4,000,000)。这适用于较低的数字,但是当我使用 4,000,000 运行它时会崩溃。我知道这在计算上很困难,但是不应该只花很长时间来计算而不是崩溃吗?还是我的代码有问题?
import functools
def fib(limit):
sequence = []
for i in range(limit):
if(i < 3):
sequence.append(i)
else:
sequence.append(sequence[i-1] + sequence[i-2])
return sequence
def add_even(x, y):
if(y % 2 == 0):
return x + y
return x + 0
print(functools.reduce(add_even,fib(4000000)))