我是javascript的新手。我的代码在某些数字上工作正常,但Factorial(5)给了我121而不是120.
function factorialize(num) {
var factorial=0;
var x=0;
for(factorial=1; factorial<=num; factorial++) {
for(x=1; x<=num; x++) {
factorial*= x;
}
}
return factorial;
}
factorialize(5);
答案 0 :(得分:1)
出于某种原因,您尝试使用两个循环实现阶乘。其中一个循环上有factorial++
,这将影响您的答案。
只需移除不需要的外环即可。
答案 1 :(得分:0)
如你所知5! = 1 * 2 * 3 * 4 * 5.
这是在JS中实现它的一种简单方法。
function factorialize(n) {
result = 1;
for (i = 1; i<=n; i++) {
result *= i;
}
return result;
}
答案 2 :(得分:0)
您可以使用递归方法执行此操作:
var factorial = function(number) {
if (number <= 0) {
return 1;
} else {
return number * factorial(number - 1);
}
};
或者,如果你想做得好又短,只需使用三元:
var newFactorial = function(number) {
return number <= 0 ? 1 : number * factorial(number - 1);
};