Програма C за намиране на факториал на число, използващо рекурсия

В този пример ще се научите да намирате факториал на неотрицателно цяло число, въведено от потребителя с помощта на рекурсия.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на 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()функцията.

Интересни статии...