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)

 

posted @ 2019-10-29 20:33  陈畅  阅读(1427)  评论(1编辑  收藏  举报