我对 python 比较陌生,因此尝试让自己运行一些简单的算法。这是 euler 项目的第一个问题,尽管 python 中的同一问题还有其他解决方案,但我尝试了不同的方法。
关键是找到小于 1000 的 3 或 5 的所有倍数的总和。这是我的代码。
def main():
num = input('Insert number:')
output = sumOfMultiples(num)
print(output)
def sumOfMultiples(param):
j = 0
i = 0
for i in range(i, param):
if (i % 3 ==0) or (i % 5 == 0) and (i % 15 != 0):
j = j + i
return j
if __name__ == '__main__':
main()
这是我得到的错误
Traceback (most recent call last):
File "/Users/Soumasish/PycharmProjects/MultiplesOf3And5/Main.py", line 21, in <module>
main()
File "/Users/Soumasish/PycharmProjects/MultiplesOf3And5/Main.py", line 7, in main
output = sumOfMultiples(num)
File "/Users/Soumasish/PycharmProjects/MultiplesOf3And5/Main.py", line 15, in sumOfMultiples
for i in range(i, param):
TypeError: 'str' object cannot be interpreted as an integer
Process finished with exit code 1
原文由 user3283997 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要将输入转换为 int:
此外,您可以按如下方式减少第二种方法。我检查了一下,它仍然给出了正确的答案: