python使用遞迴實現斐波拉契數列
阿新 • • 發佈:2018-12-12
遞迴
什麼是遞迴
在有基線條件的情況下迭代自身,即是在有結束條件的情況下函式不斷呼叫自己。如果沒有結束條件則會導致出現死迴圈,程式崩潰。就像準備高考或者考研複習時,我們需要每天重複相似的學習內容,但我們不可能一直保持這種狀態,必然有停止學習的時間,那就是高考或者考研結束時,這個迴圈既可以停止,如果不給自己設定一個停止條件,那就會導致一直重複下去,無法停止,最後崩潰
遞迴的作用
遞迴可以使程式變得更加通俗易懂,更容易理解。但相對迴圈而言程式的效能可能會降低。在決定使用迴圈還是遞迴時,需要看你更需要效能還是可讀性。
遞迴的條件
要寫一個遞迴程式必須包含兩個條件:基線條件和遞迴條件
基線條件即是程式結束的條件,當滿足什麼條件時程式會停止呼叫自己
遞迴條件時函式呼叫自己
遞迴完成斐波拉契數列
斐波拉契數列(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)