挑战在于编写一个函数 factorial(n) 来返回 n 的阶乘!,使用递归调用。
写了这个脚本
function factorial(n){
var sum = n;
for(var i=1; i<n; i++){
return sum*=i;
}
return sum;
}
alert(factorial(5));
按照思路,他应该显示数字120。但他只是显示5。我不明白问题出在哪里。附:我需要一个循环调用而不是递归调用。
你有一个额外的
return. 也就是说,您的循环执行一次(5 乘以 1)并返回此值。删除return它,你会没事的。你甚至没有这样的递归调用。
factorial(n)必须在自身内部调用自身才能被视为递归。在您的情况下,它应该是这样的: