斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。
1,通过递归的方式实现,效率很低
In [25]: def fib(n): ...: if n == 0: ...: return 0 ...: if n ==1: ...: return 1 ...: else: ...: return fib(n-1) + fib(n-2) ...: In [26]: fib(5)Out[26]: 5In [27]: fib(10)Out[27]: 55
2,通过for 循环的方式实现
In [15]: def fib(n): ...: a,b = 0,1 ...: for i in range(n): ...: a,b = b,a+b ...: return a
In [22]: def fib(n): ...: a,b = 0,1 ...: lst = [] ...: for i in range(n): ...: lst.append(a) ...: a,b = b,a+b ...: return lst
3,通过生成器的方式实现
In [7]: def fib(n): ...: a,b = 0,1 ...: for i in range(n): ...: yield a ...: a,b = b,a+b
In [9]: for x in fib(10): ...: PRint(x) ...: 0112358132134
新闻热点
疑难解答