Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.02.2018, 11:50
Новичок на форуме
Отправить личное сообщение для novicer Посмотреть профиль Найти все сообщения от novicer
 
Регистрация: 22.02.2018
Сообщений: 3

Дописать код нахождения факториала
Дописать код в соответствии с инструкциями в задании
В теле функции дописать ИТЕРАТИВНЫЙ (то есть с помощью цикла) алгоритм нахождения факториала.
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;
                }
Ответить с цитированием
  #2 (permalink)  
Старый 22.02.2018, 12:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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>
Ответить с цитированием
  #3 (permalink)  
Старый 22.02.2018, 13:05
Новичок на форуме
Отправить личное сообщение для novicer Посмотреть профиль Найти все сообщения от novicer
 
Регистрация: 22.02.2018
Сообщений: 3

Спасибо, но не подходит. Делаю тест на одном сайте (правила форума еще не читал, не знаю можно ли его указать), там код проверяется автоматически.
Ответить с цитированием
  #4 (permalink)  
Старый 22.02.2018, 14:30
Новичок на форуме
Отправить личное сообщение для novicer Посмотреть профиль Найти все сообщения от novicer
 
Регистрация: 22.02.2018
Сообщений: 3

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

function factorial(x) {
    if (x <= 1)
        return 1;
    return x * factorial(x - 1);
}
document.write("Факториал " + input + "! = " + factorial(input));
Ответить с цитированием
  #5 (permalink)  
Старый 22.02.2018, 15:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от novicer
Разобрался сам =)
Рекурсия не лучшее решение для вычисления факториала.

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти и заменить код скрипта на странице на другой код? smls Общие вопросы Javascript 2 18.07.2016 22:01
"Оживите" код с хабра - https://habrahabr.ru/sandbox/51453/ Daniil2206 Node.JS 0 11.05.2016 18:09
Дописать код в div по клику eridan Javascript под браузер 6 14.04.2016 06:36
Требуется выводить код рекламного блока Adsense из файла JavaScript??? speedflow Элементы интерфейса 0 26.05.2012 15:50
Получить код js-скрипта, находящегося в файле на сервере RomanA Общие вопросы Javascript 4 04.04.2012 09:53