JS 계승 알고리즘을 달성하기 위해 세 가지 방법

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];
}
게시 24 개 원래 기사 · 원의 칭찬 0 · 조회수 400

추천

출처blog.csdn.net/qq_18138105/article/details/105376295