前言

函式間也可以相互呼叫,除了呼叫別的函式外,也可呼叫自己本身,這種函式呼叫自己的方式稱為「遞迴」。每一次呼叫,皆會產生不一樣的效果,直到遇到終止再呼叫函式自身的條件或效果時,才會停止遞迴離開函式。如果遞迴的函式內沒有設定終止呼叫的條件,則這樣的函式會形成無窮遞迴。

遞迴在數學或電玩遊戲上常被使用,例如:數列、階乘、費氏數列、輾轉相除法、排列、組合、堆疊、河內塔、八個皇后、老鼠走迷宮…。有些程式雖然使用for、while…等重複結構也能處理,但使用遞迴函式會較為簡潔易懂。以「階乘」為例,正整數的階乘是所有小於及等於該數 n 的正整數的積,用 n!表示。階乘的通式為 n! = n * (n-1) * (n-2) * … * 2 * 1
例如: 5! = 5 * 4 * 3 *2 *1 = 120。

[簡例] 使用階乘函式計算n!=1*2*3*(n-1)*n的結果,其中由使用者輸入。n的輸入值必須大於等於1。 (檔名:factorial.py)

[結果]

n = 6 ↵
6! = 720

[不用遞迴]


相關主題與延伸閱讀