У цьому прикладі ви навчитеся знаходити факторіал невід’ємного цілого числа, введеного користувачем за допомогою рекурсії.
Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування на С:
- 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()
функції.