Python实现斐波拉契数列
斐波拉契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
在数学上,斐波那契数列以如下被以递推的方法定义:
F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
Python实现斐波拉契数列:
方法一:用for循环逐个打印出数列的值
def fibonacci1(n): a,b = 0,1 for i in range(n): a,b =b,a+b print a
方法二:用while循环逐个打印出数列的值
def fibonacci2(n): a =0 b = 1 i =0 while i <n: print b a,b = b,a+b i = i+1
方法三:用递归的方法,加上for循环,把每次循环产生的新项增加到数列最后,最后一次性输出list
def fibonacci3(n): lis =[] for i in range(n): if i ==1 or i ==0: lis.append(1) else: lis.append(lis[i-2]+lis[i-1]) print lis
方法四:用递归的方法,加上while循环,把每次循环产生的新项增加到数列最后,最后一次性输出list
def fibonacci4(n): lis=[] i=0 while i<n: if i==0 or i ==1: lis.append(1) else: lis.append((lis[i-2]+lis[i-1])) i = i + 1 print lis
方法五:先用递归的方法,定义一个返回第n项值的函数fn,再加上for循环,以此返回全部n项的值。
def fibonacci5(n): def fn(i): if i <2: return 1 else: return (fn(i-2)+fn(i-1)) for i in range(n): print fn(i)