您的位置:首页 > 其它

递归和非递归方法实现斐波那契数列

2016-04-13 11:32 615 查看

介绍

斐波那契数列(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))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: