保理数字

时间:2015-07-21 01:46:54

标签: javascript loops

试图计算一个数字,即7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040

从这开始,但我还没有能够解决这个问题:

function factorialize(num) {
  for (i = 1; i < num; i ++) {
   var math = i * i;
    math++;

  return math;

}
}

先谢谢你。

3 个答案:

答案 0 :(得分:1)

你在这个代码中有几个错误,首先你将 i * i ,然后用一个增加数学,然后你在for循环中返回你只会执行1次迭代,

有几种方法可以实现它, 我将写下其中的两个

function get_factorial(num){
   if(num < 0){
      throw new RangeError('Factorial is only defined for non-negative integers');
   }
   var res = 1;
   for(var i = num;num >1 ; num--){
       res *= num;
   }
   return res;
}

和递归方式:

function get_factorial(num){
    if(num < 0){
      throw new RangeError('Factorial is only defined for non-negative integers');
    }
    if(num ==1 || num ==0){
      return 1;
    }
    return num * get_factorial(num-1);
}

**现在根据Paul建议

,在负数而不是返回字符串的情况下抛出异常

答案 1 :(得分:0)

仔细看看你在那里的第三行。 你在那里犯了一个数学错误,你也犯了以下几行错误 - 仔细考虑你想要循环的内容,即你想要多次执行的步骤。

我希望有所帮助,我担心我们在推出解决方案方面并不大,这是一项相当简单的任务。如果您仍然无法重新考虑编程的一些基础知识,包括for循环,并尝试写出您想要实现的图表。

答案 2 :(得分:0)

int total = 1;
for(int i =1; i <= num; i++){
  total *= i;
}
return total;