a = 0
suma = 0
while( a <= 1000):
if (a%3 == 0 or a%5 == 0):
suma = suma + a
a = a + 1
print("The final answer is: %s " % suma)
问题: 找到所有3或5的倍数之和,直到1000。
我知道如何通过使用for循环解决这个问题,我想知道的是,为什么,当我运行这个代码时,它永远不会显示输出像一个永无止境的代码语句。我只是想通过while循环知道如何做到这一点。感谢您的反馈:D
答案 0 :(得分:5)
你应该增加a
的值,无论它是3还是5的倍数
while( a <= 1000):
if (a%3 == 0 or a%5 == 0):
suma = suma + a
a = a + 1
目前,它永远不会超过a = 1
,因为1既不是3的倍数也不是5的倍数,因此它永远不会增加
答案 1 :(得分:1)
嗯,这是因为你的循环永远不会增加。
答案 2 :(得分:0)
您需要将增量行移出if语句。
答案 3 :(得分:0)
这不是非常Python风格。请尝试改为:
sum_a = 0
for a in xrange(1001):
if a%3 == 0 or a%5 == 0:
sum_a += a
print("The final answer is: {}".format(str(sum_a)))
xrange(1001)
将在a
的每次迭代中生成值。这比改变每次互动更有效,更快捷。
这种方式往往更清晰,并且可以避免很多错误。