gpt4 book ai didi

python - 尝试在 Python 中使用 while 循环遍历 1000 以下的所有 5 的倍数

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:24 26 4
gpt4 key购买 nike

我目前正在尝试解决 Project Euler 中的一些问题。作为第一个问题的一部分,我需要找到 1000 以下的所有 5 的倍数之和。这是我写的:

fiveSum = 5   #the sum of the multiples
n = 1.0 #number of the multiples
i = 5 #represents the current multiple of 5

while (i + 5 < 1000):
i = i * (1 + (1 / n))
fiveSum += i
n += 1

完成后,由于某种原因,n=200,而它应该是 199。当 i=995.0 时, bool 表达式仍然等于“true”。我尝试添加:

print i + 5 < 1000 
print i + 5
print 995.0 + 5 < 1000

看看当 i=995.0 时计算机会怎么想,它会说:

True
1000.0
False

有人知道我错过了什么吗?当我对 3 的倍数执行类似的循环时,结果很好。

最佳答案

你的计数器的起始值是 1 : n = 1 ,第一次迭代后你的计数器是 2 (在 n += 1 之后),因此最终你的计数器太多了。

你的计数器应该从 0 开始,然后在第一次迭代中你将用 0 进行除法,因此你需要重新排序你的代码:

fiveSum = 5   #the sum of the multiples
n = 0 # n = 0.0. number of the multiples
i = 5 #represents the current multiple of 5

while (i + 5 < 1000):

fiveSum += i
n += 1
i = i * (1 + (1 / n))

print (n)

输出:

199 # 199.0

关于python - 尝试在 Python 中使用 while 循环遍历 1000 以下的所有 5 的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59108129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com