1. 程式人生 > >python使用遞迴實現斐波拉契數列

python使用遞迴實現斐波拉契數列

遞迴

什麼是遞迴

​ 在有基線條件的情況下迭代自身,即是在有結束條件的情況下函式不斷呼叫自己。如果沒有結束條件則會導致出現死迴圈,程式崩潰。就像準備高考或者考研複習時,我們需要每天重複相似的學習內容,但我們不可能一直保持這種狀態,必然有停止學習的時間,那就是高考或者考研結束時,這個迴圈既可以停止,如果不給自己設定一個停止條件,那就會導致一直重複下去,無法停止,最後崩潰

遞迴的作用

​ 遞迴可以使程式變得更加通俗易懂,更容易理解。但相對迴圈而言程式的效能可能會降低。在決定使用迴圈還是遞迴時,需要看你更需要效能還是可讀性。

遞迴的條件

​ 要寫一個遞迴程式必須包含兩個條件:基線條件遞迴條件

​ 基線條件即是程式結束的條件,當滿足什麼條件時程式會停止呼叫自己

​ 遞迴條件時函式呼叫自己

遞迴完成斐波拉契數列

​ 斐波拉契數列(Fibonacci sequence)是指這樣的一個數列:0,1,1,2,3,5,8,13,21…

​ 前兩個數的和等於下一個數

"""
遞迴寫出斐波拉契數列
斐波拉契數列:1,1,2,3,5,8。。。
"""

def Fibonacci(i):
    """
    輸出指定位置的斐波拉契數
    """

    if i == 1 or i ==2:
        return 1
    elif i == 0:
        return 0
    else:
        # sum = Fibonacci(i-2) + Fibonacci(i-1)
# print(sum) # 必須通過return返回結果,否則資料無法傳輸,導致結果報錯, return Fibonacci(i-2) + Fibonacci(i-1) if __name__ == "__main__": print(Fibonacci(5)) # 列印指定位置的數 # 列印指定數量的斐波拉契數列 l = [] for i in range(5): l.append(Fibonacci(i)) print(l)