În acest exemplu, veți învăța să găsiți factorialul unui număr întreg non-negativ introdus de utilizator utilizând recursivitatea.
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare C:
- Funcții C
- C Funcții definite de utilizator
- C Recursivitate
Factorialul unui număr pozitiv n este dat de:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Factorialul unui număr negativ nu există. Și factorialul 0
este 1
.
În acest exemplu, veți învăța să găsiți factorialul unui număr folosind recursivitatea. Accesați această pagină pentru a afla cum puteți găsi factorialul unui număr folosind o buclă.
Factorialul unui număr folosind recursivitatea
#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; )
Ieșire
Introduceți un număr întreg pozitiv: 6 Factorial de 6 = 720
Să presupunem că utilizatorul a introdus 6.
Inițial, multiplyNumbers()
este apelat de la main()
cu 6 trecut ca argument.
Apoi, 5 este transmis la multiplyNumbers()
aceeași funcție (apel recursiv). În fiecare apel recursiv, valoarea argumentului n este redusă cu 1.
Când valoarea lui n este mai mică de 1, nu există apel recursiv și factorialul este returnat în cele din urmă main()
funcției.