Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python项目_Python_Python 2.7 - Fatal编程技术网

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的倍数!非常感谢