我试图创建一个脚本,该脚本返回输入数字的阶乘作为挑战的一部分。当我尝试运行它时,它会返回正确的阶乘,但显然我在某种程度上做错了。
看起来像这样:
function FirstFactorial(num) {
if (num > 1) {
var x = num;
for (var i = 1; i < x; i++) {
num = num * i;
}
} else if (num === 1) {
return 1;
} else {
console.log("That's not a number!");
}
return num;
}
然后我尝试这样做,但它仍然无法正常工作!
function FirstFactorial(num) {
if (num < 0) {
num = 0;
console.log("You have to input a number!");
}
if (num === 0) {
return 1;
}
return num * FirstFactorial(num - 1);
}
答案 0 :(得分:1)
最可能的原因是他们期望并打算使用递归(一种自我调用的函数)。
如果你考虑阶乘,每个都建立在前一个结果的基础上,这是使用递归的经典案例。
(请注意,我特意不通过递归发布代码,因为这里的重点是你来解决如何这样做。)