编写For循环以评估阶乘



我正在尝试编写一个函数,该函数将返回作为输入给定的任何数字的阶乘。现在,我的代码一团糟。请帮忙。

function factorialize(num) {
  for (var i=num, i>0, i--){
    var result = 1;
    result = result * i;
  }
  return result;
}
factorialize(5);

应该是这样的

 function factorialize(num){
     var result = 1;
  for(var i = num ; i >0 ; i--) {
     result = result * i ;
    }
   return result;
}

你也可以对这个使用递归

 function fact(num) {
   if(num > 1) 
         return num * fact(num-1);
else
     return 1;
}
function factorialize(num) {
    var result = 1;
    while (num) {
        result *= num;
        num--;
    }
    return result;
}
factorialize(5);
// or a very short version:
function f(n) { return +!~-n || n * f(n - 1); }

最新更新