📅  最后修改于: 2023-12-03 15:01:46.931000             🧑  作者: Mango
阶乘是指从1到给定数字的连乘积(如:5的阶乘为5! = 5 * 4 * 3 * 2 * 1 = 120)。在 JavaScript 中,计算阶乘的方法可以使用循环或递归实现。
使用 for 循环计算阶乘。
function factorial(num) {
if (num < 0) {
return -1;
} else if (num === 0 || num === 1) {
return 1;
}
else {
for (var i = num - 1; i >= 1; i--) {
num *= i;
}
return num;
}
}
该函数接受一个数值参数 num,返回其阶乘值。如果 num 小于 0,返回 -1;如果 num 为 0 或 1,返回 1;否则使用 for 循环计算阶乘。
使用递归计算阶乘。
function factorial(num) {
if (num < 0) {
return -1;
} else if (num === 0 || num === 1) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
该函数的递归基础为 num 为 0 或 1 时返回 1,否则返回 num 与 factorial(num - 1) 的乘积。
以上是 JavaScript 中阶乘的两种实现方式。如果只需计算小数字的阶乘,使用循环实现较为简单明了;如果需要计算大数字的阶乘,使用递归可能更合理。两种实现方式都可以达到计算阶乘的目的,选择哪种方式将根据实际情况而定。