在数学中,正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,计为 n!。
例如5的阶乘计为 5!,其值为 120:5!= 5 × 4 × 3 × 2 × 1 = 120 。
并定义,1的阶乘1!为1、0的阶乘0!亦为1,其中,0的阶乘表示一个空积。

JavaScript 实现

计算数字的阶乘。

  • 使用递归。
  • 如果 n 小于或等于 1,则返回 1
  • 否则,返回 n 的乘积和 n - 1 的阶乘。
  • 如果 n 是负数,抛出 TypeError
const factorial = n =>
  n < 0
    ? (() => {
        throw new TypeError('Negative numbers are not allowed!')
      })()
    : n <= 1
    ? 1
    : n * factorial(n - 1)

factorial(6) // 720

此示例来自 30 seconds of code 的 factorial

Leetcode 关于阶乘的题目