计算一个正整数的阶乘(JavaScript)

function factorial(n) {
    if (isFinite(n) && n > 0 && n == Math.round(n)) {   // 有限的正整数
        if (!(n in factorial))                          // 没有缓存结果
            factorial[n] = n * factorial(n - 1);
        return factorial[n];                            // 返回缓存结果
    }
    else {
        return NaN;
    }
}

factorial[1] = 1;

factorial(3);

你可能感兴趣的:(JavaScript)