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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM