为什么这不适用于project euler第2部分?(Python)包含项目说明
这个脚本可以给我为什么这不适用于project euler第2部分?(Python)包含项目说明,python,Python,这个脚本可以给我 所有斐波那契数高达4000000 给我所有偶数的总和,最多4000000 然而,它不能满足以下要求,我想知道如何使它这样做 我的剧本: #Problem 2 P2 = 0 fib= 0 f1 = 1 f2 = 0 debugP2 = [] while fib < 4000000: fib = f1 + f2 f2 = f1 f1 = fib if fib % 2 == 0: P2 += fib debugP2
#Problem 2
P2 = 0
fib= 0
f1 = 1
f2 = 0
debugP2 = []
while fib < 4000000:
fib = f1 + f2
f2 = f1
f1 = fib
if fib % 2 == 0:
P2 += fib
debugP2.append(fib)
print(debugP2)
print(fib)
#问题2
P2=0
fib=0
f1=1
f2=0
debugP2=[]
当fib<4000000时:
fib=f1+f2
f2=f1
f1=fib
如果fib%2==0:
P2+=fib
debugP2.append(fib)
打印(调试P2)
打印(fib)
问题是:
斐波那契序列中的每个新项都是通过将前两项相加生成的。从1和2开始,前10个术语将是: 1、2、3、5、8、13、21、34、55、89 通过考虑Fibonacci序列中值不超过4的项 百万,求偶数值项之和
您应该打印
P2
而不是fib
#Problem 2
P2 = 0
fib= 0
f1 = 1
f2 = 0
debugP2 = []
while fib < 4000000:
fib = f1 + f2
f2 = f1
f1 = fib
if fib % 2 == 0:
P2 += fib
debugP2.append(fib)
print(P2) # Its not fib
编辑:您可以这样缩短程序
P2, fib, f1, f2 = 0, 0, 1, 0
while fib < 4000000:
fib, f2 = f1 + f2, f1
f1 = fib
if fib % 2 == 0:
P2 += fib
print(P2) # Its not fib
非常感谢你,我不敢相信我错过了。“欢迎你:”请考虑一下投票,接受这个答案,如果它能帮助你,我会接受,一旦我得到了声誉投票。
P2, fib, f1, f2 = 0, 0, 1, 0
while fib < 4000000:
fib, f2 = f1 + f2, f1
f1 = fib
if fib % 2 == 0:
P2 += fib
print(P2) # Its not fib
4613732