JS(七)递归

作者: StevenTang | 来源:发表于2018-03-05 00:29 被阅读20次

    写在最前面

    • 写一个函数实现n的阶乘
     n! = n*(n-1)!;
        
    function mul (n){
    
        //n的阶乘
        //for(var i  = 1; i <= n;i ++){
        //     num *= i;
        //}
        
        if(n == 1){
            return 1;
        }
        
        return n*mul(n-1);
    }
    // 递归
    mul(5);
    //找规律
    //找出口
    //唯一好处代码简洁
    
    

    mul(5) ==> 5*mul(4);

    mul(4) ==> 4*mul(3);

    mul(3) ==> 3*mul(2);

    mul(2) ==> 2*mul(1);

    //找规律
    //找出口
    //例子:写一个斐波那契数列
    //fb(n) ==fb(n-1)+fb(n-2)
    function fb(n){
        if( n == 1 ||n ==2 ){
            return 1;
        }
        return fb(n-1) + fb(n-2);
    }
    

    fb(5) ==> fb(4) + fb(3)

    fb(4) ==> fb(3) + fb(2)

    fb(3) ==> fb(2) + ..

    相关文章

      网友评论

        本文标题:JS(七)递归

        本文链接:https://www.haomeiwen.com/subject/cclcfftx.html