Program C k nalezení faktoriálu čísla pomocí rekurze

V tomto příkladu se naučíte najít faktoriál nezáporného celého čísla zadaného uživatelem pomocí rekurze.

Abychom pochopili tento příklad, měli byste mít znalosti o následujících programovacích tématech jazyka C:

  • Funkce C.
  • C Uživatelem definované funkce
  • C Rekurze

Faktoriál kladného čísla n je dán vztahem:

factorial of n (n!) = 1 * 2 * 3 * 4 *… * n 

Faktoriál záporného čísla neexistuje. A faktoriál 0je 1.

V tomto příkladu se naučíte najít faktoriál čísla pomocí rekurze. Na této stránce najdete informace o tom, jak najít faktoriál čísla pomocí smyčky.

Faktoriál čísla pomocí rekurze

#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; ) 

Výstup

Zadejte kladné celé číslo: 6 Factorial of 6 = 720 

Předpokládejme, že uživatel zadal 6.

Zpočátku multiplyNumbers()je volán z main()6 předán jako argument.

Potom se předá 5 multiplyNumbers()ze stejné funkce (rekurzivní volání). V každém rekurzivním volání se hodnota argumentu n sníží o 1.

Když je hodnota n menší než 1, neexistuje žádné rekurzivní volání a faktoriál se nakonec vrátí do main()funkce.

Zajímavé články...