我在 problem 2 上再次尝试欧拉计划问题, 我被要求找到斐波那契数列中所有偶数的总和在 400 万以下。我可以使用下面的代码使用 While 循环(在代码中显示为注释),但不使用 for 循环(这给了我巨大的数字,并且使 'c' 方式超过 400 万。
为什么 for 循环在这里不起作用?
谢谢。
def fibo():
z=[]
a=1
b=1
c=0
for c in range(0,4000000): #doesn't work; works with while (c<4000000)
c = a+b
if c%2 == 0 and c<4000000:
z.append(c)
a=b
b=c
print c
print 'sum is',sum(z)
fibo()
请您参考如下方法:
for 循环并不意味着“当 c == 4000000 时停止”。它的意思是“遍历序列 range(4000000),这是一个从 0 到 3999999 的数字列表,并运行循环体一次并将 c 设置为每个元素顺序”。
