Dans cet exemple, vous apprendrez à trouver la factorielle d'un entier non négatif saisi par l'utilisateur à l'aide de la récursivité.
Pour comprendre cet exemple, vous devez avoir la connaissance des sujets de programmation C suivants:
- Fonctions C
- C Fonctions définies par l'utilisateur
- C Récursivité
La factorielle d'un nombre positif n est donnée par:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
La factorielle d'un nombre négatif n'existe pas. Et la factorielle de 0
est 1
.
Vous apprendrez à trouver la factorielle d'un nombre en utilisant la récursivité dans cet exemple. Visitez cette page pour savoir comment trouver la factorielle d'un nombre à l'aide d'une boucle.
Factorielle d'un nombre utilisant la récursivité
#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; )
Production
Entrez un entier positif: 6 factorielle de 6 = 720
Supposons que l'utilisateur ait entré 6.
Initialement, multiplyNumbers()
est appelé de main()
avec 6 passé en argument.
Ensuite, 5 est passé à multiplyNumbers()
depuis la même fonction (appel récursif). Dans chaque appel récursif, la valeur de l'argument n est diminuée de 1.
Lorsque la valeur de n est inférieure à 1, il n'y a pas d'appel récursif et la factorielle est finalement renvoyée à la main()
fonction.