如果我们列出10以下的所有自然数,它们是3或5的倍数,我们得到3,5,6和9,这些倍数的总和是23。
找出1000以下3或5的所有倍数的总和。我的Python代码工作正常,我想知道它是否可以改进或缩短?
x = []
y = []
z = []
n = int(input())
for i in range(1, n+1):
if i%3 == 0:
x.append(i)
r = sum (x)
for j in range(1, n+1):
if j%5 == 0:
y.append(j)
s = sum(y)
for m in range(1, n+1):
if m%3 == 0 and m%5 == 0:
z.append(m)
t = sum(z)
print((r+s)-t)
发布于 2018-08-04 08:26:29
我不知道这是否被认为是更干净的,但为了解决前面的评论,我认为这是你的一行解决方案:
n = int(input())
print((sum(list(range(0, n, 3)))+sum(list(range(0, n, 5))))-sum(list(range(0, n, 15))))
https://stackoverflow.com/questions/51681359
复制相似问题