【发布时间】:2018-08-25 22:06:37
【问题描述】:
我是 Python 新手,正在通过 edX 学习并尝试解决 ProjectEuler 数学问题。第二个问题是关于将所有小于 4,000,000 的偶数斐波那契数相加。我能够用 Python 解决这个问题,但不是以一种令我满意的方式。
首先我定义了一个fib函数:
def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
然后,我能够打印所有小于 4,000,000 的偶数斐波那契数:
n = 0
while True:
if fib(n) < 40000000 and fib(n) % 2 == 0:
print(fib(n))
n = n+1
elif fib(n) < 4000000 and fib(n) % 2 != 0:
n = n+1
else:
break
然后,我根据打印的内容手动形成了一个列表,并将列表相加。问题是我不想这样做。我希望计算机在运行时形成列表,然后总结价值。有谁知道我该怎么做?谢谢!
【问题讨论】: