在JavaScript中返回factorial

时间:2015-05-17 10:01:01

标签: javascript factorial

我试图创建一个脚本,该脚本返回输入数字的阶乘作为挑战的一部分。当我尝试运行它时,它会返回正确的阶乘,但显然我在某种程度上做错了。

看起来像这样:

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);
}

1 个答案:

答案 0 :(得分:1)

最可能的原因是他们期望并打算使用递归(一种自我调用的函数)。

如果你考虑阶乘,每个都建立在前一个结果的基础上,这是使用递归的经典案例。

(请注意,我特意通过递归发布代码,因为这里的重点是来解决如何这样做。)