English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous apprendrez à écrire des fonctions récursives en utilisant le langage C à l'aide d'exemples.
Les fonctions qui appellent elles-mêmes sont appelées fonctions récursives. Et cette technique est appelée récursion.
void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... }
La récursion continue jusqu'à ce que certaines conditions empêchent la récursion.
Pour éviter la récursion infinie, une appel récursif peut être effectué dans une branche, tandis que l'autre branche ne le fait pas.Instructions if ... else。
#include <stdio.h> int sum(int n); int main() { int number, result; printf("Entrez un entier positif: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; } int sum(int n) { if (n != 0) //Appel de la fonction sum() par elle-même return n + sum(n-1); else return n; }
Résultat de la sortie
Entrez un entier positif:3 sum = 6
Au début, la fonction sum() est appelée à partir de la fonction main() et le nombre est passé en tant que paramètre.
Supposons que la valeur initiale de n dans sum() soit3. Pendant la prochaine appel de fonction,2Passé à la fonction sum(). Ce processus continue jusqu'à ce que n soit égal à 0.
Lorsque n est égal à 0, l'expression conditionnelle if échoue et exécute la partie else, renvoyant finalement l'entier et à la fonction main().
La récursion rend les programmes élégants. Cependant, si la performance est cruciale, il est préférable d'utiliser des boucles plutôt que la récursion, car la récursion est généralement beaucoup plus lente.
Bien que cela soit ainsi, la récursion est un concept important. Elle est souvent utilisée dans les structures de données et les algorithmes. Par exemple, la récursion est généralement utilisée dans des problèmes tels que l'exploration d'un arbre.