C Récursivité (fonction récursive)

Table des matières

Dans ce tutoriel, vous apprendrez à écrire des fonctions récursives en programmation C à l'aide d'un exemple.

Une fonction qui s'appelle elle-même est appelée fonction récursive. Et cette technique est connue sous le nom de récursivité.

Comment fonctionne la récursivité?

 void recurse () (… recurse ();…) int main () (… recurse ();…)

La récursivité se poursuit jusqu'à ce qu'une condition soit remplie pour l'empêcher.

Pour éviter une récursion infinie, l'instruction if… else (ou une approche similaire) peut être utilisée là où une branche effectue l'appel récursif et l'autre non.

Exemple: Somme des nombres naturels utilisant la récursivité

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Production

 Entrez un entier positif: 3 somme = 6

Initialement, le sum()est appelé à partir de la main()fonction avec un nombre passé en argument.

Supposons que la valeur de n à l'intérieur sum()soit 3 initialement. Lors de l'appel de fonction suivant, 2 est passé à la sum()fonction. Ce processus se poursuit jusqu'à ce que n soit égal à 0.

Lorsque n est égal à 0, la ifcondition échoue et la elsepartie est exécutée, renvoyant finalement la somme des entiers à la main()fonction.

Avantages et inconvénients de la récursivité

La récursivité rend le programme élégant. Cependant, si les performances sont vitales, utilisez plutôt des boucles car la récursivité est généralement beaucoup plus lente.

Cela étant dit, la récursivité est un concept important. Il est fréquemment utilisé dans la structure des données et les algorithmes. Par exemple, il est courant d'utiliser la récursivité dans des problèmes tels que la traversée d'arbre.

Articles intéressants...