C Programma om faculteit van een nummer te vinden met behulp van recursie

In dit voorbeeld leert u de faculteit te vinden van een niet-negatief geheel getal dat door de gebruiker is ingevoerd met behulp van recursie.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C-programmeeronderwerpen:

  • C Functies
  • C Door de gebruiker gedefinieerde functies
  • C Recursie

De faculteit van een positief getal n wordt gegeven door:

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

De faculteit van een negatief getal bestaat niet. En de faculteit 0is 1.

In dit voorbeeld leer je de faculteit van een getal te vinden met behulp van recursie. Bezoek deze pagina om te zien hoe je de faculteit van een getal kunt vinden met behulp van een lus.

Factorial van een nummer met behulp van recursie

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

Uitvoer

Voer een positief geheel getal in: 6 Factorieel van 6 = 720 

Stel dat de gebruiker 6 heeft ingevoerd.

In eerste instantie multiplyNumbers()wordt aangeroepen main()met 6 doorgegeven als argument.

Vervolgens wordt 5 doorgegeven aan multiplyNumbers()dezelfde functie (recursieve aanroep). Bij elke recursieve aanroep wordt de waarde van argument n verlaagd met 1.

Als de waarde van n kleiner is dan 1, is er geen recursieve aanroep en wordt de faculteit uiteindelijk teruggegeven aan de main()functie.

Interessante artikelen...