Skip to main content
 首页 » 编程设计

python之我是全新的,正在使用 python 进行 Project Euler #2

2025年05月04日1798°冷暖

目标是将每个偶数求和到 400 万。 我认为这会起作用,但程序卡住了。认为它与 if 语句有关,但在其他方面丢失了。这是我的。

list = [] 
a, b = 0, 1 
while b <40: 
    if b%2 == 0: 
        list.append(b) 
        a, b = b, a+b 
 
t=sum(list) 
print(t) 

请您参考如下方法:

这是你最大的问题:

a, b = b, a+b 

它很有可能会搞乱你的循环!就像其他人提到的那样,当 b 为奇数时它甚至不会更新任何东西,只有当它是偶数时才会更新,然后你就卡住了。

为什么不用简单的方法,使用范围:

mysum = sum([i for i in range(0, 40, 2)]) 

将用一行处理所有事情(当然,如果您还想包含数字 4,000,000,请将 40 替换为 4,000,001。如果您只想包含它但不包含它,请使用只有 4,000,000)