В этом примере вы научитесь находить факториал неотрицательного целого числа, введенного пользователем с помощью рекурсии.
Чтобы понять этот пример, вы должны знать следующие темы программирования на C:
- Функции C
- C Пользовательские функции
- C Рекурсия
Факториал положительного числа n определяется как:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Факториала отрицательного числа не существует. И факториал 0
есть 1
.
В этом примере вы научитесь находить факториал числа с помощью рекурсии. Посетите эту страницу, чтобы узнать, как найти факториал числа с помощью цикла.
Факториал числа с использованием рекурсии
#include long int multiplyNumbers(int n); int main() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); printf("Factorial of %d = %ld", n, multiplyNumbers(n)); return 0; ) long int multiplyNumbers(int n) ( if (n>=1) return n*multiplyNumbers(n-1); else return 1; )
Вывод
Введите положительное целое число: 6 Факториал 6 = 720.
Предположим, пользователь ввел 6.
Первоначально multiplyNumbers()
вызывается из main()
с 6 переданным в качестве аргумента.
Затем 5 передается multiplyNumbers()
из той же функции (рекурсивный вызов). В каждом рекурсивном вызове значение аргумента n уменьшается на 1.
Когда значение n меньше 1, рекурсивный вызов отсутствует, и факториал в конечном итоге возвращается main()
функции.