Maison  >  Article  >  développement back-end  >  Explication détaillée de la récursivité des fonctions C++ : définition et principe de la récursivité

Explication détaillée de la récursivité des fonctions C++ : définition et principe de la récursivité

WBOY
WBOYoriginal
2024-05-01 12:45:01263parcourir

La récursion est une technique de programmation dans laquelle une fonction s'appelle elle-même, obtenue en divisant le problème en problèmes plus petits, en définissant des conditions aux limites et en diminuant le problème. En prenant la séquence de Fibonacci comme exemple, la fonction récursive utilise les conditions aux limites (n ​​≤ 1) et le problème de diminution (fib(n - 1) + fib(n - 2)) pour résoudre progressivement les éléments de séquence.

C++ 函数递归详解:递归的定义和原理

Récursion de fonction C++ Explication détaillée : La définition et le principe de la récursion

Définition et principe

La récursion est une technique de programmation dans laquelle une fonction s'appelle elle-même. La fonction transmet les données lorsqu'elle s'appelle et renvoie le résultat une fois le traitement terminé.

Le concept de base de la récursion est le suivant :

  • Problème de décomposition de fonctions : décomposer un gros problème en une série de problèmes plus petits.
  • Conditions aux limites : définissez les conditions aux limites qui mettent fin à la récursion pour éviter les boucles infinies.
  • Problème décroissant : à chaque appel récursif, le sous-problème devient plus petit, atteignant finalement la condition aux limites.

Cas pratique : Trouver la séquence de Fibonacci

La séquence de Fibonacci est une séquence entière, les deux premiers nombres sont 0 et 1, et chaque nombre suivant est la somme des deux nombres précédents. Par exemple : 0, 1, 1, 2, 3, 5, 8, 13, ....

Nous pouvons utiliser des fonctions récursives pour résoudre la séquence de Fibonacci :

int fib(int n) {
  if (n <= 1) {
    return n;
  } else {
    return fib(n - 1) + fib(n - 2);
  }
}

Répartition des étapes :

  1. Conditions aux limites : Lorsque n est inférieur ou égal à 1, renvoyez directement n. n 小于或等于 1 时,直接返回 n
  2. 递减问题:n 大于 1 时,函数递归调用自身两次,求解 n - 1n - 2
  3. Problème décroissant : Lorsque n est supérieur à 1, la fonction s'appelle récursivement deux fois pour résoudre n - 1 et n - 2 Numéros de Fibonacci et additionnez les résultats.
Résultat final :

Après plusieurs appels récursifs, la séquence de Fibonacci sera progressivement calculée et finalement renvoyée à l'appel de fonction initial.

Exemple d'utilisation :

🎜
int main() {
  int result = fib(10);
  cout << "斐波那契数列第 10 项:" << result << endl;
  return 0;
}
🎜Sortie : 🎜
斐波那契数列第 10 项:55

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn