我决定开始解决项目euler上的问题,而我在第一个问题上就陷入了困境。 当我在powershell或使用Visual Studio代码运行while循环时,它什么也没显示。 Powershell只会显示闪烁的光标,并且视觉效果会返回文件路径。
问题是: 如果我们列出所有低于10的自然数,它们是3或5的倍数,则得到3、5、6和9。这些倍数的总和为23。
找到1000以下的3或5的所有倍数之和。
total = 0
x = 1
a = 3*x
b = 5*x
while (a or b<1000):
total = total + a + b
x =+ 1
print total
我也尝试过更改代码,但是没用
total = 0
x = 1
a = 3*x
b = 5*x
while (a<1000):
total = total + a
x =+ 1
while(b<1000):
total =+ b
x=+1
print total
答案 0 :(得分:1)
让您自己解决问题。首先,找到您的变量和常量。 您的变量是从1到1000的数字和总和。
尝试:
open(foundBlockPath)
edit(foundBlockPath)
blockHandles(iHandle).openEditor
答案 1 :(得分:0)
假设缩进错误是由于复制粘贴错误引起的,那么您将陷入无限循环。 while a < 1000
,但您从不更改a
。
因为您知道迭代的范围,所以使用for
循环更有意义:
print(sum(n for n in range(1, 10) if n % 3 == 0 or n % 5 == 0))
# 23
print(sum(n for n in range(1, 100) if n % 3 == 0 or n % 5 == 0))
# 2318
答案 2 :(得分:0)
您的问题是无限循环,所以这是我的解决方案:
def findAndSum(x):
total = 0
for i in range(x):
if(i%3 == 0 or i%5 == 0):
total +=i
print total
findAndSum(10)
findAndSum(100)
findAndSum(1000)
我认为这种解决方案更容易理解。首先,使用所需范围调用该方法。然后,您检查每个数字是否可以被3或5整除而不加休息,并将其加到总数中。