Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Дописать код нахождения факториала (https://javascript.ru/forum/misc/72728-dopisat-kod-nakhozhdeniya-faktoriala.html)

novicer 22.02.2018 11:50

Дописать код нахождения факториала
 
Дописать код в соответствии с инструкциями в задании
В теле функции дописать ИТЕРАТИВНЫЙ (то есть с помощью цикла) алгоритм нахождения факториала.
var input = prompt("Введите число: ");
input = parseInt(input);

function factorial(x) {
   if (x <= 1) 
      return 1;
    var result = 1;
    for(var i = x; ) {
        result = 
    }
   return result;
}
document.write("Факториал " + input + "! = " + factorial(input));


Как будет правильно и почему не работает:

for(var i = x-1; i>1; i--) {
                result = x *= i;
                }

рони 22.02.2018 12:03

novicer,
<script>
var input = 5//prompt("Введите число: ");
input = parseInt(input);

function factorial(x) {
   if (x <= 1)
      return 1;
    var result = 1;
    for(var i = x; i;) {
        result *= i--
    }
   return result;
}
document.write("Факториал " + input + "! = " + factorial(input));

  </script>

novicer 22.02.2018 13:05

Спасибо, но не подходит. Делаю тест на одном сайте (правила форума еще не читал, не знаю можно ли его указать), там код проверяется автоматически.

novicer 22.02.2018 14:30

Разобрался сам =)
var input = prompt("Введите число: ");
input = parseInt(input);

function factorial(x) {
    if (x <= 1)
        return 1;
    return x * factorial(x - 1);
}
document.write("Факториал " + input + "! = " + factorial(input));

ksa 22.02.2018 15:17

Цитата:

Сообщение от novicer
Разобрался сам =)

Рекурсия не лучшее решение для вычисления факториала. ;)

Вообще не стоит применять рекурсивные вызовы если есть простой аналог с циклом.


Часовой пояс GMT +3, время: 23:41.