В этом примере вы научитесь писать программу на JavaScript, которая находит факториал числа с помощью рекурсии.
Чтобы понять этот пример, вы должны знать следующие темы программирования JavaScript:
- Рекурсия JavaScript
- Оператор JavaScript if… else
Факториал числа - это произведение всех чисел от 1 до этого числа. Например,
факториал 5 равен 1 * 2 * 3 * 4 * 5 = 120 .
Факториал положительного числа n определяется как:
factorial of n (n!) = 1 * 2 * 3 * 4… n
Факториала отрицательных чисел не существует, а факториал 0 равен 1 .
Пример: найти факториал с помощью рекурсии
// program to find the factorial of a number function factorial(x) ( // if number is 0 if (x == 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) // take input from the user const num = prompt('Enter a positive number: '); // calling factorial() if num is positive if (num>= 0) ( const result = factorial(num); console.log(`The factorial of $(num) is $(result)`); ) else ( console.log('Enter a positive number.'); )
Вывод
Введите положительное число: 4 Факториал 4 равен 24
В приведенной выше программе пользователю предлагается ввести число.
Когда пользователь вводит отрицательное число, появляется сообщение Введите положительное число. Показано.
Когда пользователь вводит положительное число или 0 , factorial(num)
вызывается функция .
- Если пользователь вводит число 0 , программа вернет 1 .
- Если пользователь вводит число больше 0 , программа рекурсивно вызывает себя, уменьшая число.
- Этот процесс продолжается до тех пор, пока число не станет 1. Затем, когда число достигнет 0, возвращается 1.
Вот,
факториал (4) возвращает 4 * факториал (3) факториал (3) возвращает 4 * 3 * факториал (2) факториал (2) возвращает 4 * 3 * 2 * факториал (1) факториал (1) возвращает 4 * 3 * 2 * 1 * факториал (0) факториал (0) возвращает 4 * 3 * 2 * 1 * 1