我刚刚开始尝试使用Project Euler的问题而且我已经陷入了第一个代码本身。有人可以在下面的代码中告诉我我哪里出错了。
问题陈述如下:
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
我的解决方案如下:
multiple1 = 5
multiple2 = 3
index = 2
sum = 0
while multiple1 < 1000 or multiple2 < 1000:
if multiple1 < 1000:
sum = sum + multiple1
multiple1 = 5 * index
if multiple2 < 1000:
sum = sum + multiple2
multiple2 = 3 * index
index = index + 1
print (sum)
我知道有人已经在某个地方发布了解决方案,但我只是想弄明白我的逻辑错误。
有人可以帮忙。
答案 0 :(得分:0)
您的代码将生成重复值。例如,15是3和5的倍数。因此,每次数字是3和5的倍数时,您都会在总和中添加重复值。下面的代码可以解决您的问题。
multiple1 = 5
multiple2 = 3
index = 1
sum = 0
while multiple1 < 1000 or multiple2 < 1000:
multiple1 = 5 * index
multiple2 = 3 * index
if (multiple1 < 1000) and (multiple1 % 3 != 0):
sum = sum + multiple1
if (multiple2 < 1000):
sum = sum + multiple2
index = index + 1
print (sum)
答案 1 :(得分:0)
最简单的方法
total = 0
for i in range(1,1000):
if i%3 == 0 or i % 5 == 0:
total += i
print(total)