在数学中,正整数的阶乘(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 关于阶乘的题目