python遞迴函數

高洛峰
發布: 2016-11-16 10:51:17
原創
1572 人瀏覽過

函數就像一個盒子,將相關的一些功能打包成一個函數,以便呼叫。函數內部可以呼叫其他函數,也可以呼叫這個函數本身。
如果一個函數在內部呼叫函數自身,那麼這個就是遞歸函數。
我們舉一個簡單的例子。
數學中我們知道100的階乘,100!=1009998...321.
分解開來,100!=10099!,99!=9998!,98!=98*97!...
那麼我們定義一個函數來計算階乘:

def fact(n):
    return n*fact(n-1)
登入後複製

上面這個函數看起來是一個數字不斷地跟與它小1的數相乘,卻沒有停止的時候。所以我們必須對上述函數進行改造,讓它能在n=1的時候,計算完就停下來。

def fact(n):
    if n==0:
        return 1
    else:
        return n*fact(n-1)
登入後複製

遞歸函數也可以用循環的方式實現。但是遞歸函數邏輯較為簡單。但是在使用遞歸函數的時候,要注意防止遞歸函數呼叫過多導致棧溢位。


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板