不知道我是否应该将其发布在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
range(k,max)不包含max,因此您实际上要检查并包含998(而999是3的倍数)。使用range(1,1000)代替。
range(k,max)
max
range(1,1000)