计算一个正整数的阶乘(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)