我的Euler Practice代码是否有更干净的Python版本
如果我们列出10以下的所有自然数,它们是3或5的倍数,我们得到3、5、6和9。这些倍数之和是23 求1000以下所有3或5的倍数之和。我的Python代码运行正常,我想知道它是否可以改进或缩短我的Euler Practice代码是否有更干净的Python版本,python,Python,如果我们列出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)
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)
我不知道这算不算干净 但是为了回应前面的评论,我认为这里是您的一行解决方案:
n = int(input())
print((sum(list(range(0, n, 3)))+sum(list(range(0, n, 5))))-sum(list(range(0, n, 15))))
如果代码有效,则可以访问显示其他解决方案的讨论页面。你试过了吗?如果你的代码有效,这是一个要求“改进或缩短”的错误站点。请尝试,但一定要阅读并遵循他们的指导方针。@RoryDaulton是对的。。。一旦你找到了一个特定问题的解决方案,你可以在projecteuler网站上看到其他人的。不过有一个提示,对于这个简单的问题,解决方案的长度不应超过1行~50个字符;)