js实现阶乘算法的三种方法

js实现阶乘算法的三种方法js实现阶乘算法的三种方法//非递归写法functionf(n){if(0===n){return1;}letres=1;for(leti=1;i<=n;++i){res*=i;}returnres;}//递归写法functiong(n…

大家好,又见面了,我是你们的朋友全栈君。

js实现阶乘算法的三种方法

// 非递归写法
function f(n) { 
   
    if (0 === n) { 
   
        return 1;
    }
    let res = 1;
    for (let i = 1; i <= n; ++i) { 
   
        res *= i;
    }
    return res;
}

// 递归写法
function g(n) { 
   
    if (0 === n) { 
   
        return 1;
    }
    return n*g(n-1);
}

// 动态规划写法
let dp = [];
function h(n) { 
   
    if (n < 0 || n !== Math.floor(n)) { 
   
        return undefined;
    }
    if (dp[n]) { 
   
        return dp[n];
    }
    if (0 === n) { 
   
        dp[n] = 1;
        return 1;
    }
    for (let i = dp.length; i <= n; ++i) { 
   
        dp[i] = dp[i-1]*i;
    }
    return dp[n];
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164017.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号