1. 程式人生 > >python遞迴函式求n的階乘,優缺點及遞迴次數設定

python遞迴函式求n的階乘,優缺點及遞迴次數設定

遞迴函式兩大特點

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)