【发布时间】:2020-07-12 06:27:46
【问题描述】:
我正在尝试创建一个生成阶乘的简单递归 JavaScript 函数。我想我在运行下面的代码时耗尽了调用堆栈中的本地内存,并可能触发无限递归。
*注意:我想用递归来解决。
function factorial(num, factor) {
//loop through descending order multiply
if (num === 1) {
return newNum
}
let newNum = num --;
let newProduct = num * newNum;
//recurse
return factorial(newNum, newProduct);
}
// Test cases
console.log(factorial(4)); // -> 24
console.log(factorial(6)); // -> 720
console.log(factorial(0)); // -> 1
关于如何以及为何修改上述代码的任何建议。
【问题讨论】:
-
不行,因为我想用递归来解决。
-
return product。什么产品? -
我不明白。阶乘中使用的参数“因子”在哪里? newNum 也没有定义,这似乎是一种不好的做法。
-
这能回答你的问题吗? JavaScript Factorial Recursion
标签: javascript recursion