介绍
斐波那契数列(Fibonacci sequence),又称
黄金分割
数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci
[1]
)以兔子繁殖为例子而引入,故又称为“
兔子数列
”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以
递归
的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。看了百度前端面试题,用递归和非递归形式写斐波那契数列。这里用Python写了一下。
代码
#递归形式,返回斐波那契数列的第n+1个数
def fib(n):
if n <= 1:
return n
return fib(n-2)+fib(n-1)
fib = [fib(i) for i in range(10)]
print(fib)
#非递归形式,返回最大数小于n的斐波那契数列
def fib1(n):
res = []
num1 = 0
num2 = 1
while num1 < n:
res.append(num1)
num1,num2 = num2,num1 + num2
return res
print(fib1(10))