美文网首页
js的阶乘

js的阶乘

作者: 斯里兰卡的小狮子 | 来源:发表于2019-03-18 10:35 被阅读0次
    1,写一个返回阶乘的函数
    factorial(5) = 5*4*3*2*1
    factorial(10) = 10*9*8*7*6*5*4*3*2*1
    
    function factorial(n){
        if(n <= 1) return 1;
        return n*arguments.callee(n-1)
    }
    

    在不用试arguments.callee情况下,可以使用递归:

    function factorial(n){
        if(n <= 1) return 1;
        return n*factorial(n-1)
    }
    
    2,编写一个函数1!+2!+3!...+n!
    function jiecheng01(n){
        var sum = 0;
        for(;n>0;n--){
            let temp = (function(i){
                if(i<=1) return 1;
                return i*arguments.callee(i-1);
            })(n)
            sum+=temp;
        }
        return sum;
    }
    
    function jiecheng02(n){
        var i,temp = 1,sum=0;
        for(var i = 1;i<=n;i++){
             temp = i*temp;
             sum += temp;
        }
        return sum;
    }
    

    针对该问题,jiecheng02的算法复杂度更简单。

    相关文章

      网友评论

          本文标题:js的阶乘

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