中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于JS遞歸的用法

發布時間:2020-06-30 11:22:57 來源:億速云 閱讀:184 作者:清晨 欄目:web開發

這篇文章主要介紹關于JS遞歸的用法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

遞歸:

函數中用調用函數自己,此時就是遞歸,遞歸一定要有結束條件

    function f1() {
        console.log("從前有座山,山里有個廟,廟里有個老和尚給小和尚講故事:");
        f1();
    };
    f1();//瀏覽器崩潰,因為沒有結束條件——死循環

	改進如下:
	    var i=0;
    function f1() {
        i++;
        if (i<5){
            f1();
        }
        console.log("從前有座山,山里有個廟,廟里有個老和尚給小和尚講故事:");
    };
    f1();

遞歸實現:求n個數字的和 n=5 ------->5+4+3+2+1

//for 循環寫法:
    var sum=0;
    for (var i=0;i<=5;i++){
        sum+=i;
    }
    console.log(sum);
----------------------分割線---------------------------

   function getSum(x) {
        if (x==1){
          return 1
        }
        return x+getSum(x-1);
    };

    var sum1=getSum(5);
    console.log(sum1);
    console.log(getSum(10));

執行過程:
代碼執行getSum(5)—>進入函數,此時的x是5,執行的是5+getSum(4),此時代碼等待
此時5+getSum(4),代碼先不進行計算,先執行getSum(4),進入函數,執行的是4+getSum(3),等待, 先執行的是getSum(3),進入函數,執行3+getSum(2),等待,先執行getSum(2),進入函數,執行 2+getSum(1);等待, 先執行getSum(1),執行的是x==1的判斷,return 1,所以,
此時getSum(1)的結果是1,開始向外走出去
2+getSum(1) 此時的結果是:2+1
執行:
getSum(2)---->2+1
3+getSum(2) 此時的結果是3+2+1
4+getSum(3) 此時的結果是4+3+2+1
5+getSum(4) 此時的結果是5+4+3+2+1

    結果:15

再來幾個:

    //遞歸案例:求一個數字各個位數上的數字的和:  123   --->6 ---1+2+3
    //523
    function getEverySum(x) {
        if(x<10){
            return x;
        }
        //獲取的是這個數字的個位數
        return x%10+getEverySum(parseInt(x/10));
    }
    console.log(getEverySum(1364));//5
 //遞歸案例:求斐波那契數列

    function getFib(x) {
        if(x==1||x==2){
            return 1
        }
        return getFib(x-1)+getFib(x-2);
    }
    console.log(getFib(12));

以上是關于JS遞歸的用法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

锡林浩特市| 莆田市| 昌平区| 高清| 桐梓县| 遂溪县| 石景山区| 云梦县| 综艺| 大关县| 紫云| 牟定县| 皋兰县| 滦南县| 通城县| 威宁| 灯塔市| 沙雅县| 崇文区| 微山县| 玉田县| 漳平市| 大竹县| 宜良县| 鹤峰县| 闵行区| 鄂伦春自治旗| 济源市| 治县。| 赤峰市| 灵寿县| 紫阳县| 瑞昌市| 平遥县| 荥经县| 滨海县| 巴塘县| 牙克石市| 手机| 扎鲁特旗| 安阳市|