负数的阶乘超过最大调用堆栈大小
factorial of a negative number exceeds maximum call stack size
为什么在尝试将这个简单的阶乘函数应用于负数时出现 maximum call stack size exceeded
?
function factorial(n) {
if (n == 0) {
return 1
}
return n * factorial(n - 1)
}
我知道阶乘函数适用于非负整数,但我想知道 internally/in JavaScript 引擎在调用此函数时发生了什么,例如-1
。
它无限运行,因为 (n == 0) 没有满足
如果你传递一个负数
return n * factorial(n - 1)
递归调用具有更多负数的阶乘函数,因此 (n == 0) 条件不满足
为什么在尝试将这个简单的阶乘函数应用于负数时出现 maximum call stack size exceeded
?
function factorial(n) {
if (n == 0) {
return 1
}
return n * factorial(n - 1)
}
我知道阶乘函数适用于非负整数,但我想知道 internally/in JavaScript 引擎在调用此函数时发生了什么,例如-1
。
它无限运行,因为 (n == 0) 没有满足
如果你传递一个负数
return n * factorial(n - 1)
递归调用具有更多负数的阶乘函数,因此 (n == 0) 条件不满足