gpt4 book ai didi

Python 和 fibonnaci [列表] 生成器

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:28 25 4
gpt4 key购买 nike

我一直在尝试使用 Python 3 生成斐波那契数列。由于我完全不熟悉编程,所以我使用的是基本工具。在这种情况下列出,作为练习。我遇到的问题是在我希望它停止时停止序列。

例如,我需要一个高达 100 的斐波那契数列,所以我这样写:

fib = [1,2]
n = 0
while max(fib) <= 100:
fib.append(fib[n]+fib[n+1])
n = n+1

print(fib)
print(max(fib))
print(n)

print() 语句仅供我使用,因此我知道发生了什么。

作为返回,我得到:

[1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
144
9

所以一切正常,除了我打算在超过 100 之前完成排序。那为什么我有144呢?我做错了什么?

最佳答案

一些事情:

  • 斐波那契数列以 1, 1, 2, ... 开头
  • 您检查最大元素是否小于 100,而不是检查下一个 元素是否小于 100

所以,第一个显然很容易改正,只需将fib声明为[1, 1]即可。

至于第二个,您可以使用 while True 循环,然后如果下一个元素大于 100中断 >,或者你可以有一个存储下一个的变量,并检查它是否小于 100 作为 while 的评估。

所以,在这一行之后:

fib = [1, 1]

您可以使用:

next = 2
while next <= 100:
fib.append(next)
next += fib[-2]

while True:
next = fib[-2] + fib[-1]
if next > 100:
break
fib.append(next)

两者都给出:

[1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

关于Python 和 fibonnaci [列表] 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49464950/

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