Задание
Напишите функцию, которая вычисляет факториал.
Задание простое, но нужно понимать что такое факториал вообще.
Факториал – это число, умноженное на "себя минус один", затем на "себя минус два", и так далее до 1. Факториал
n обозначается как
n! Отсюда мы можем понять, что функция должна принимать 1 аргумент, который будет являться числом. Будет неплохо, если вы на собеседовании сразу напишите проверку на приходящее значение

Поэтому, если в нашу функцию приходит дробное число или не число - возвращается строка с любым сообщением на ваше усмотрение. Если 0 и меньше - возвращается число 1.
Сам же факториал с примерами выглядит вот так:
n! = n * (n - 1) * (n - 2) * ...*1
- это общая формула
Примеры значений для разных
n:
1! = 1
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
5! = 5 * 4 * 3 * 2 * 1 = 120
То есть, вызов нашей функции
factorial(5) возвращает число 120
factorial(4) => 24
Решить задачу нужно через рекурсию.
Код
function factorial() {
}
Решение
Код
"use strict";
function factorial(n) {
if (typeof(n) !== 'number' || !Number.isInteger(n)) {
return "Ошибка, проверьте данные";
}
if (n >= 1) {
return n * factorial(n - 1);
} else {
return 1;
}
// Более короткий вариант, который вы можете встретить
// Но не учитывает отрицательные значения
return n ? n * factorial(n - 1) : 1;
}
factorial(5)
Всего комментариев: 0