Găsirea factorialului folosind o buclă în javascript (Programare, Javascript, Factorial)

cine.întreabă a intrebat.

Trebuie să folosesc o buclă pentru a găsi factorialul unui număr dat. Evident, ceea ce am scris mai jos nu va funcționa, deoarece atunci când i = inputNumber ecuația va fi egală cu 0.

Cum pot să opresc i să ajungă la 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);

Comentarii

  • Posibil duplicat al factorialului unui număr –  > Por Harald Gliebe.
  • Posibil duplicat al funcției Fast factorial în JavaScript –  > Por Krisztián Balla.
6 răspunsuri
Zhenya Telegin

aici este o eroare i <= inputNumber

ar trebui să fie i < inputNumber

Comentarii

  • sau putem începe bucla for de la 1 for(i =1; i<=numărul de intrare; i++) și total = total * i; –  > Por DivyaMaheswaran.
Islam Sayed

puteți păstra acest lucru: i <= inputNumber

și faceți doar această modificare: total = total * i;

atunci fragmentul de cod ar arăta astfel:

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

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

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

Comentarii

  • for(var i=1; i<= inputnumber; i++) prea funcționează, nu-i așa? –  > Por DivyaMaheswaran.
bboy
var inputNumber = prompt('Please enter an integer');
var total = 1;

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

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

Comentarii

  • Ar trebui să explicați ce modificări ați făcut. Nu este foarte util să arunci doar codul corectat fără să explici. –  > Por Carcigenicate.
  • Explicație adăugată aici: Ar trebui să înlocuiască condiția „i<=inputNumber” cu „i<inputNumber” –  > Por bboy.
Nina Scholz

Ați putea folosi valoarea de intrare și o while declarație cu un prefix operator de descreștere --.

Carla

Folosind total *= i; veți configura toate calculele matematice factoriale fără a fi nevoie de cod suplimentar. De asemenea, pentru un factorial corect, ar trebui să numărați descrescător de la numărul de intrare în loc să creșteți. Acest lucru ar funcționa foarte bine:

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

Ogundeji Yusuff

Comentarii

  • Poate explicați soluția dvs. pentru ca cititorii să înțeleagă. Mulțumesc. –  > Por Lece.