python中遞迴的使用
阿新 • • 發佈:2019-01-03
python中遞迴函式的使用:
def division(n): print(n) if n/2==0: return n#遞迴特性一:必須有一個明確的結束條件 return division(n/2)#遞迴特性而:每次遞迴都是為了讓問題規模變小 division(10)#遞迴特性三:遞迴層次過多會導致棧溢位,且效率不高
這種方式執行python檔案會報:RecursionError: maximum recursion depth exceeded while calling a Python object錯誤
原因是有小數的存在,有科學技術法的出現會導致遞迴一直進行,所以需要將n/2轉換為int型別
def division(n): print(n) if int(n/2)==0: return n#遞迴特性一:必須有一個明確的結束條件 return division(int(n/2))#遞迴特性而:每次遞迴都是為了讓問題規模變小 division(10)#遞迴特性三:遞迴層次過多會導致棧溢位,且效率不高
執行結果如下:
10 5 2 1
遞迴有三大特性,我已經在程式碼註釋中標出!