gpt4 book ai didi

python - Project Euler #25 Python 为什么这行不通?

转载 作者:行者123 更新时间:2023-11-30 23:30:08 25 4
gpt4 key购买 nike

我正在尝试解决this problem :

The 12th term, F12, is the first term to contain three digits.

What is the first term in the Fibonacci sequence to contain 1000 digits?

check = True
mylst = [1,1]
i = 1
while check:
if len(str(mylst[i])) >= 1000:
check = False
else:
mylst.append(mylst[i-1] + mylst[i-2])
i=i+1
a =str((mylst[len(mylst)-1]))
print(len(a))
print(a)

我似乎得到了测试用例 2 和 3 的正确答案,但我的答案没有被接受。请帮助我,我无法理解出了什么问题。

最佳答案

我认为您的代码中有错误。如果你看一下第一次迭代,你会从 i=1 开始,然后调用

mylst.append(mylst[i-1] + mylst[i-2])  

这将添加 mylst[0] + mylst[-1]。这也给了我不正确的答案(查找第一个 3 位数字的索引,F12。您的代码给了我 F18)。

显然这不是您想要做的。您可以通过更改要添加到一起的列表索引来修复此问题。

check = True
mylst = [1,1]
i = 1
while check:
if len(str(mylst[i])) >= 1000:
check = False
else:
mylst.append(mylst[i] + mylst[i-1])
i=i+1

然后,正如其他人提到的,您需要答案的索引。

print len(mylst)

关于python - Project Euler #25 Python 为什么这行不通?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20803952/

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