如何生成 Python 中的斐波那契数列,其值不应超过目标值
How do I generate a Fibonacci series in Python whose value shouldn't exceed a target value
Python 的新手,需要一些帮助。
我正在尝试生成一个斐波那契数列并将每个元素放入一个列表中。我想设置一个条件,这样我不希望 Fibonacci 列表包含任何大于目标值的元素。我创建了一个函数 myFib 来生成这个列表并传递一个参数 20 希望我的 Fibonacci 列表只包含小于 20 的值。我的循环在附加元素 21 后停止,我试图弄清楚我做错了什么这里。一旦我让它工作,我想为 2000000 的目标值做这件事,所以在我设置一个大的目标值之前试图弄清楚机制。感谢任何帮助。
def myFib(max_count):
a = 1
b = 1
fiblist = [1, 1]
while fiblist[-1] <= max_count:
temp = a
a = b
b = temp + a
fiblist.append(b)
print(fiblist)
return fiblist
myFib(20)
我得到的输出是
[1, 1, 2, 3, 5, 8, 13, 21]
您可以在代码中添加一个条件来打破 while
循环,以免任何值超过您的 max_count
变量,例如:
def myFib(max_count):
a = 1
b = 1
fiblist = [1, 1]
while fiblist[-1] <= max_count:
temp = a
a = b
b = temp + a
if b > max_count:
break
fiblist.append(b)
# print(fiblist)
return fiblist
输出:
myFib(20)
>>> [1, 1, 2, 3, 5, 8, 13]
Python 的新手,需要一些帮助。
我正在尝试生成一个斐波那契数列并将每个元素放入一个列表中。我想设置一个条件,这样我不希望 Fibonacci 列表包含任何大于目标值的元素。我创建了一个函数 myFib 来生成这个列表并传递一个参数 20 希望我的 Fibonacci 列表只包含小于 20 的值。我的循环在附加元素 21 后停止,我试图弄清楚我做错了什么这里。一旦我让它工作,我想为 2000000 的目标值做这件事,所以在我设置一个大的目标值之前试图弄清楚机制。感谢任何帮助。
def myFib(max_count):
a = 1
b = 1
fiblist = [1, 1]
while fiblist[-1] <= max_count:
temp = a
a = b
b = temp + a
fiblist.append(b)
print(fiblist)
return fiblist
myFib(20)
我得到的输出是
[1, 1, 2, 3, 5, 8, 13, 21]
您可以在代码中添加一个条件来打破 while
循环,以免任何值超过您的 max_count
变量,例如:
def myFib(max_count):
a = 1
b = 1
fiblist = [1, 1]
while fiblist[-1] <= max_count:
temp = a
a = b
b = temp + a
if b > max_count:
break
fiblist.append(b)
# print(fiblist)
return fiblist
输出:
myFib(20)
>>> [1, 1, 2, 3, 5, 8, 13]