在 javascript 中使用循环查找阶乘

Finding the factorial using a loop in javascript

我需要使用循环来查找给定数字的阶乘。显然我在下面写的内容是行不通的,因为当 i = inputNumber 方程将等于 0.

我怎样才能阻止我到达 inputNumber?

var inputNumber = prompt('Please enter an integer');
var total = 1;

for (i = 0; i <= inputNumber; i++){
    total = total * (inputNumber - i);
}

console.log(inputNumber + '! = ' + total);

这里有错误i <= inputNumber

应该是i < inputNumber

var inputNumber = prompt('Please enter an integer');
var total = 1;

for (i = 0; i < inputNumber; i++){
    total = total * (inputNumber - i);
}

console.log(inputNumber + '! = ' + total);

var inputNumber = prompt('Please enter an integer');
var total = 1;

for (i = 0; i < inputNumber; i++){
    total = total * (inputNumber - i);
}

alert(inputNumber + '! = ' + total);

您可以使用输入值和 while statement with a prefix decrement operator --

var inputNumber = +prompt('Please enter an integer'),
    value = inputNumber,
    total = inputNumber;

while (--value) {                           // use value for decrement and checking
    total *= value;                         // multiply with value and assign to value
}

console.log(inputNumber + '! = ' + total);

你可以保留这个: i <= inputNumber

然后做这个改变: 总计=总计*i;

那么代码片段将如下所示:

var inputNumber = prompt('Please enter an integer');
var total = 1;

for (i = 1; i <= inputNumber; ++i){
total = total * i;
}

console.log(inputNumber + '! = ' + total);

使用总计*=i;无需额外代码即可设置所有阶乘数学。此外,对于正确的阶乘,您希望从输入数字开始倒数而不是增加。这会很好用:

var inputNum = prompt("please enter and integer");
var total = 1;
for(i = inputNum; i > 1; i--){
 total *= i;
}
console.log(total);

function factorialize(num) {
  
  var result = num;
  if(num ===0 || num===1){
    
    return 1;
  }
  
  while(num > 1){
    num--;
    result =num*result;
  }
  return result;
}

factorialize(5);