如何在Python中找到1000以下的3或5的所有倍数的和?

发布于 2021-01-29 15:25:45

不知道我是否应该将其发布在math.stackexchange上,但是它包含更多的编程功能,因此我将其发布在这里。

这个问题似乎很简单,但是我现在在这里已经坐了至少一个小时,还没弄清楚。我尝试了不同的解决方案,并为其阅读了数学公式,但是在编写代码时,它给我的答案不正确!我为此提出了两种不同的解决方案,都给了我错误的答案。第一个解决方案给我265334,而第二个解决方案给我232169。答案为233168,因此第二个解决方案更接近。

我应该提到这是来自Euler项目的一个问题,这是第一个确切的问题。

这是我的代码。有什么想法怎么了?

nums = [3, 5]
max = 999

result = 0
for num in nums:
    for i in range(1,max):
        if num*i < max:
            result += num*i
print result


result = 0
for i in range(0,max):
    if i%3 == 0 or i%5 == 0:
        result += i

print result
关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    range(k,max)不包含max,因此您实际上要检查并包含998(而999是3的倍数)。使用range(1,1000)代替。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看