English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet article, vous apprendrez à créer une fonction récursive. Une fonction qui s'appelle elle-même.
appelle elle-mêmefonctionest appelée une fonction récursive. Et cette technique est appelée récursion.
void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... }
La figure suivante montre la manière de la récursion.
La récursion continue jusqu'à ce que certaines conditions soient satisfaites.
Pour éviter la récursion infinie, utilisez une branche pour appeler la récursion et l'autre ne pas appeler la récursion.if ... else(ou une méthode similaire).
// factoriel de n = 1*2*3*...*n #include <iostream> using namespace std; int factorial(int); int main() { int n; cout << "Entrez un nombre pour trouver le factoriel: "; cin >> n; cout << "Nombre " << n << " de factoriel= " << factorial(n); return 0; } int factorial(int n) { if (n > 1) { return n*factorial(n-1); } else { return 1; } }
Résultat de la sortie
Entrez un nombre pour trouver le factoriel: 4 numéro 4le factoriel de 24
Hypothèse : l'utilisateur a entré4et le transmet à cette fonction factorial().
Dans la première fonction factorial(), testerifsi l'expression à l'intérieur de true est true. return num*factorial(num-1); L'instruction est exécutée, elle appelle la deuxième fonction factorial() et passe en paramètre num-1de3.
Dans la deuxième fonction factorial(), tester l'expression à l'intérieur de l'if true. return num*factorial(num-1); L'instruction est exécutée, elle appelle la troisième fonction factorial() et passe en paramètre num-1de2.
Dans la troisième fonction factorial(), tester l'expression à l'intérieur de l'if true. return num*factorial(num-1); L'instruction est exécutée, elle appelle la quatrième fonction factorial() et passe en paramètre num-1est1.
Dans la quatrième fonction factorial(), le test de l'expression à l'intérieur de if est faux. return 1L'instruction ; est exécutée, retour1Jusqu'à la troisième fonction factorial().
La troisième fonction factorial()2Retour à la deuxième fonction factorial().
La deuxième fonction factorial()6Retour à la première fonction factorial().
Finalement, la première fonction factorial()24Retour à la fonction main(), qui affichera à l'écran.