前言:本博文主要講解Python中的遞歸,以前在C#中也講過遞歸的一些知識——深刻理解C#方法重載和遞歸,有興趣的朋友能夠閱讀一下!
python
遞歸是一種編程思想,應用場景:web
遞歸的特色:算法
遞歸算法:遞歸(Recursion),在數學與計算機科學中,是指在函數的定義中使用函數自身的方法。編程
# 3 + 2 + 1 def sum_numbers(num): # 1.若是是1,直接返回1 -- 出口 if num == 1: return 1 # 2.若是不是1,重複執行累加並返回結果 return num + sum_numbers(num-1) sum_result = sum_numbers(3) # 輸出結果爲6 print(sum_result)
# 階乘函數 def Fact(n): if n == 1: return 1 return n * Fact(n-1)
def Fibo(n): # 出口 if n == 1 or n == 2: return 1 else: return Fibo(n - 1) + Fibo(n - 2)
- 遞推:像上邊遞歸實現所拆解,遞歸每一次都是基於上一次進行下一次的執行,這叫遞推。
- 回溯:則是在遇到終止條件,則從最後往回返一級一級的把值返回來,這叫回溯。
補充:本博文關於遞歸的故事案例、圖片案例均引用自知乎,感謝讀者閱讀!數據結構