Python项目
我正在研究这个项目。我是对的,出于某种原因,我得到了错误的答案。我不知道是我的数学逻辑出了问题,还是代码的逻辑错了。代码如下:Python项目,python,python-2.7,Python,Python 2.7,我正在研究这个项目。我是对的,出于某种原因,我得到了错误的答案。我不知道是我的数学逻辑出了问题,还是代码的逻辑错了。代码如下: def getSumMult3_5(n): count = 0 i = 0 i_1 = 0 while i*5 < n: count += i*5 i += 1 while i_1*3 < n: count += i_1*3 i_1 += 1 re
def getSumMult3_5(n):
count = 0
i = 0
i_1 = 0
while i*5 < n:
count += i*5
i += 1
while i_1*3 < n:
count += i_1*3
i_1 += 1
return count
print getSumMult3_5(1000)
但这不是正确的答案。计数应等于233168。有谁能帮我弄清楚它为什么这样做吗
谢谢 您正在重复计算5和3的倍数,例如15。您正在重复计算15的倍数。您可以通过引入第三个while语句来解决这个问题,将计数每15的倍数减少1 我建议使用if/else语句:
def getSumMult3_5(n):
s=0
对于范围(1,n+1)内的i:
如果i%3==0:
s+=i
elif i%5==0:
s+=i
返回s
打印getSumMult3_5(1000)
这是因为如果数字是3的倍数,它不会检查它是否是5的倍数;如果不是3的倍数,则检查是否是5的倍数
我还建议使用s作为变量名,因为它表示sum,不能使用sum,因为它是一个关键字。计数似乎是指某件事发生的次数
通过只使用一个变量,并使用if/else语句,执行时间将减少,读取时也不会太混乱
祝你好运 这是我的代码:
running_sum = 0
for i in range(1,1000):
if i % 3 == 0:
running_sum+=(i)
elif i % 5 == 0:
running_sum+=(i)
print running_sum
你在重复计算像15这样的数字,它们是两者的倍数哦,哇,我真蠢。我没有仔细阅读这个问题。它是3或5的倍数!非常感谢