我已经尝试查找已经在StackOverflow上为项目Euler问题1提出的一些问题,但对我没什么帮助。这是我的代码,它运行,但它不正确。不确定什么是错的?
def sumOfMultiples(number):
sum = 0
for i in range(1,number):
if i % 3 == 0 or i % 5 == 0:
sum += 1
return sum
print (sumOfMultiples(15))
答案 0 :(得分:3)
您根本没有使用i
。当数字符合条件(可被3或5整除)时,您想要添加它,而不是1。
sum += 1
应该是
sum += i
答案 1 :(得分:3)
question要求"低于1000"的所有3或5的倍数之和。您将总和加1,而不是将3或5的倍数加到总和中。
因此sum += 1
应为sum += i
。
答案 2 :(得分:2)
import time
#Recording start time of the program
start=time.time()
#A variable to store the sum
result=0
#calculating the sum for all the numbers below 1000
for i in range(1,1000):
#Checking the the condition
if i%3==0 or i%5==0:
result=result+i
print("Sum of all numbers that are multiples of 3 or 5 below 1000 is",result)
print("Execution time of program is",time.time()-start)
答案 3 :(得分:0)
def sumOfMultiples(number):
sum = 0
for i in range(1,number):
if i % 3 == 0 or i % 5 == 0:
sum += i
return sum
print (sumOfMultiples(15))
代替sum + = 1写入总和+ = i。
答案 4 :(得分:0)
这是一个让你思考的单线:
print sum([x for x in xrange(1,1000) if x%3==0 or x%5==0])
或者您也可以这样做:
print sum([[0,x][x%3==0 or x%5==0] for x in xrange(1,10**3)])