Program C na nájdenie faktoriálu čísla pomocou rekurzie

V tomto príklade sa naučíte nájsť faktoriál nezáporného celého čísla zadaného používateľom pomocou rekurzie.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku C:

  • C Funkcie
  • C Užívateľom definované funkcie
  • C Rekurzia

Faktoriál kladného čísla n je daný:

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

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

V tomto príklade sa naučíte nájsť faktoriál čísla pomocou rekurzie. Na tejto stránke nájdete informácie o tom, ako nájsť faktoriál čísla pomocou slučky.

Faktoriál čísla pomocou rekurzie

#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ýkon

Zadajte kladné celé číslo: 6 Faktoriál zo 6 = 720 

Predpokladajme, že užívateľ zadal 6.

Spočiatku multiplyNumbers()je volaný z main()čísla 6 odovzdaný ako argument.

Potom sa multiplyNumbers()z tej istej funkcie odovzdá 5 (rekurzívne volanie). V každom rekurzívnom volaní sa hodnota argumentu n zníži o 1.

Keď je hodnota n menšia ako 1, neexistuje rekurzívne volanie a faktoriál sa nakoniec vráti do main()funkcie.

Zaujímavé články...