python遞迴函式求n的階乘,優缺點及遞迴次數設定
阿新 • • 發佈:2019-02-09
遞迴函式兩大特點:
1.能夠呼叫函式自身
2.至少有一個出口(結束函式自身呼叫)
函式實現:
def calnum(num):
if num != 1:
# 遞迴呼叫自身函式
csum = num * calnum(num - 1)
else:
# 設定遞迴出口
csum = 1
return csum
ret = calnum(5)
print(ret)
遞迴函式的缺點:
佔用資源多,一般不會優先選擇。 一個程式中python預設只允許呼叫自身1024次,超過這個次數, python直譯器會認為該程式執行有錯誤而報錯停止
報錯資訊:
RuntimeError: maximum recursion depth exceeded
當然python是支援自定義次數的:
import sys
# 設定允許的呼叫次數為2000
sys.setrecursionlimit(2000)