📜  javascript 阶乘 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:46.931000             🧑  作者: Mango

JavaScript 阶乘 - JavaScript

介绍

阶乘是指从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 中阶乘的两种实现方式。如果只需计算小数字的阶乘,使用循环实现较为简单明了;如果需要计算大数字的阶乘,使用递归可能更合理。两种实现方式都可以达到计算阶乘的目的,选择哪种方式将根据实际情况而定。