引言
波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233、……
在数学上,斐波纳契数列以如下被以递归的方法定义:
F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
也可以这样说:第一项和第二项是1,之后的每一项为之前两项的和;
第一种方式:
def fibonacci(n):
"""斐波那契数列"""
result = []
i,a,b = 0,1,1 # 前三项为:0,1,1 将a改成0即可
if int(n) < 0:
print("传入的参数不合理")
elif int(n) == 1:
result.append(a)
else:
while i < int(n):
result.append(a)
a, b = b, a + b
i += 1
return result
print(fibonacci(20))
第二种方式:
def fibonacci(n):
"""斐波那契数列"""
fibs = [1, 1] # 前三项为:0,1,1 将fibs[0]改成0即可
for i in range(n-2):
# 倒数第二个 + 倒数第一个,然后追加到列表
fibs.append(fibs[-2]+fibs[-1])
return fibs
print(fibonacci(10))