Архив Заявка в команду Календарь Справка Гарант-сервис Руководство форума Правила форума Обратная связь/контакты
Вернуться   WM-FORUM.NET.RU > Форум вебмастеров про сайты, seo, операционные системы. > Форум хакеров

Важная информация!

Форум хакеров Хакерский форум посвященный взлому и безопасности. Услуги хакеров, покупка, продажа, обмен, работа.

Ответ
 
Опции темы Опции просмотра
Старый 20.04.2018, 22:38       #1
Sondzo
«Герой форума WM-Forum»
«Пропавший без вести»
 
Аватар для Sondzo
Дополнительная информация
По умолчанию Помогите решить проблему с JS.

Что то решил я себя помучить и только осваивая JS, взялся я написать скрипт, который подсчитывал бы факториал и выводит ответ на экран. Потратил часа полтора, но решить не могу. Код несколько раз менялся, в окончательном варианте вышло следующее:

Код:
<script>
var n = prompt('Введите число факториала', 1);
var i = 1;
var s = n;
var factorial;
while (i < n) {
	s = s*(s-1);
	factorial = s;
	i++;
}
alert(factorial);
Но что-то даже в этой редакции он выдает ненормальные значения.
Sondzo вне форума  
Понравился пост? Поделись с друзьями!
Ответить с цитированием Вверх
Старый 21.04.2018, 10:34       #2
Sondzo
«Герой форума WM-Forum»
«Пропавший без вести»
 
Аватар для Sondzo
Дополнительная информация
По умолчанию

Вчера я нес какую-то фигню. На утро придумалось другое решение данной проблемы. Мне кажется, можно найти более оптимальный путь и если кто-нибудь укажет более оптимальный способ, буду признателен. Пока решение данной задач у меня получилось такое:

Код:
<DOCTYPE HTML>
<HTML>
<head>
<title>Вычисление факториала</title>
<meta charset="utf-8">
</head>
<body>
<p>Скрипт для вычисления факториала</p>
<script>
var n = prompt('Введите число факториала', 1);
var i = 1;
var s = 1;
var p;
while (i < n) {
	p = i +1;
	s = s * p;
	i++;
	
}
alert(s);


</script>

</body>


</HTML>
Sondzo вне форума  
Ответить с цитированием Вверх
Старый 21.04.2018, 21:05       #3
SeaMan75
«Герой форума WM-Forum»
 
Аватар для SeaMan75
Дополнительная информация
По умолчанию

Цитата:
Сообщение от Sondzo Посмотреть сообщение
можно найти более оптимальный путь
Такие задачи решаются рекурсивно:
Код:
<DOCTYPE HTML>
<HTML>
<head>
<title>Вычисление факториала</title>
<meta charset="utf-8">
</head>
<body>
<p>Скрипт для вычисления факториала</p>
<script>
function factorial(n) {
  return n ? n * factorial(n - 1) : 1;
}

var n = prompt('Введите число факториала', 1);
alert( factorial(n) ); 
</script>
</body>
</HTML>
Рекурсия - это когда функция вызывает саму себя! Таким образом мы, по сути, считаем так: n! = n * (n - 1) * (n - 2) * ...*1
Сначала мы создали функцию factorial, которая возвращает 1, если n == 0. Выражение n ? n * factorial(n - 1) : 1; равносильно конструкции if...else. Им мы проверяем n на равенство 0. И проверка эта сводится к тому, что во многих языках программирования на 0 не надо проверять, так как любое ненулевое значение - это истина, иначе - ложь! И в этом выражении если n ? вернет истину, то отработает n * factorial(n - 1), а если n == 0, то будет ложь и тогда отработает правая часть, то есть вернется 1!
SeaMan75 вне форума  
Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Johnny Cash (22.04.2018), Sondzo (21.04.2018)
Старый 21.04.2018, 22:25       #4
Sondzo
«Герой форума WM-Forum»
«Пропавший без вести»
 
Аватар для Sondzo
Дополнительная информация
По умолчанию

[Только зарегистрированные и активированные пользователи могут видеть ссылки] , благодарю за подсказку и разъяснение.
Sondzo вне форума  
Ответить с цитированием Вверх
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться c Google Adsense. Sondzo Прочие партнерские программы 8 29.07.2020 01:17
Помогите придумать меню для пиратской вечеринки Flora Кухонная болталка 15 22.01.2018 17:35
Помогите выбрать смартфон Гостья из будущего Смартфоны и мобильные телефоны 3 22.10.2017 12:28


Текущее время: 14:18. Часовой пояс GMT +3.


Forum powered by vBulletin ®. 2000 - 2024 ©, vBulletin Solutions, Inc.

WM-FORUM.NET.RU © 2024 | WM-FORUM ®, Ltd. | Все права защищены.
391 Sutter Street, Office 302, San Francisco, CA 94108, USA.

По всем вопросам пишите на: info@wm-forum.net.ru
Все материалы добавляются пользователями. При копировании материалов форума активная ссылка на сайт обязательна.
Сайт может содержать контент не предназначенный для лиц младше 18-ти лет.
Контент 18+

digitalocean

Перевод: zCarot

Рейтинг@Mail.ru