官术网_书友最值得收藏!

4.5 遞歸函數

視頻講解

所謂遞歸函數就是函數在自身的函數體內調用自身,使用遞歸函數時一定要當心,處理不當會使程序進入死循環,遞歸函數只在特定的情況下使用,如處理階乘問題。

語法如下:

    function 函數名(參數1){
        函數名(參數2);
    }

例如,使用遞歸函數取得10!的值,其中10!=10*9!,而9!=9*8!,以此類推,最后1!=1,這樣的數學公式在JavaScript程序中可以很容易使用函數進行描述,可以使用f(n)表示n!的值,當1<n<10時,f(n)=n*f(n-1),當n≤1時,f(n)=1。代碼如下:

    01  function f(num){               //定義遞歸函數
    02     if(num<=1){                 //如果參數num的值小于等于1
    03         return 1;               //返回1
    04     }else{
    05         return f(num-1)*num;    //調用遞歸函數
    06     }
    07  }
    08  alert("10!的結果為:"+f(10));  //調用函數輸出10的階乘

本實例運行結果如圖4.11所示。

圖4.11 輸出10的階乘

在定義遞歸函數時需要兩個必要條件。

 包括一個結束遞歸的條件。

如上面示例中的if(num<=1)語句,如果滿足條件則執行“return 1;”語句,不再遞歸。

 包括一個遞歸調用語句。

如上面示例中的“return f(num-1)*num;”語句,用于實現調用遞歸函數。

主站蜘蛛池模板: 二连浩特市| 怀来县| 两当县| 大庆市| 日照市| 灵璧县| 大石桥市| 滨海县| 牟定县| 兰考县| 沧源| 瓦房店市| 綦江县| 手游| 北碚区| 苍南县| 弥勒县| 修水县| 丰都县| 灵寿县| 铅山县| 建水县| 凤山市| 杭州市| 新邵县| 县级市| 钟山县| 牟定县| 佛学| 乡宁县| 莫力| 普洱| 湾仔区| 东城区| 景东| 灵武市| 图木舒克市| 英超| 尼勒克县| 济阳县| 如东县|