遞迴函式

Bgods發表於2019-10-31

在python中,函式內部可以呼叫其他函式,也可以呼叫函式自身,這種函式內部呼叫自身的函式我們稱為遞迴函式。
舉個例子,階乘(factorial)的計算:n! = 1*2*3*...*n

def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n-1)

factorial(n)就是一個遞迴函式,試試執行:

>>> factorial(1)
1
>>> factorial(5)
120
>>> factorial(10)
3628800

分析factorial(5)計算過程

===> factorial(5)
===> 5*factorial(4)
===> 5*4*factorial(3)
===> 5*4*3*factorial(2)
===> 5*4*3*2*factorial(1)
===> 5*4*3*2*1
===> 120

遞迴函式的優點是定義簡單,邏輯清晰。理論上,所有的遞迴函式都可以寫成迴圈的方式,但迴圈的邏輯不如遞迴清晰。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章