Maison  >  Article  >  développement back-end  >  L'application de la récursivité en C++ : des conseils pratiques en termes simples

L'application de la récursivité en C++ : des conseils pratiques en termes simples

WBOY
WBOYoriginal
2024-05-01 11:24:01907parcourir

La récursion est une technique de programmation dans laquelle une fonction s'appelle elle-même, adaptée aux problèmes diviser pour mieux régner. En C++, une fonction récursive est définie comme : returnType functionName(parameters), qui nécessite une situation de base claire (condition de terminaison) et un appel récursif (s'appelant après la mise à jour des paramètres). Le calcul factoriel est un cas classique de récursion. Le code est le suivant : `cpplong factorial(int n) { if (n == 0) {return 1;} else {return n * factorial(n-1);}}

递归在 C++ 中的应用:深入浅出实操指导

Application de la récursion en C++

Introduction

La récursion est une technique de programmation puissante qui permet aux fonctions de s'appeler elles-mêmes. Il est souvent utilisé pour résoudre des problèmes de nature diviser pour mieux régner, c'est-à-dire que le problème peut être décomposé en sous-problèmes plus petits qui peuvent être résolus de manière récursive.

Syntaxe

En C++, les fonctions récursives sont définies à l'aide de la syntaxe suivante :

returnType functionName(parameters) {
  // 基线情况:当递归终止时要满足的条件
  if (base_case) {
    return result;
  }

  // 递归调用:函数调用自己,传入更新后的参数
  return functionName(updated_parameters);
}

Cas pratique : factoriel

Trouver la factorielle d'un entier non négatif est un exemple classique de récursion. Factorial est défini comme :

factorial(n) = 1,                   if n = 0
              = n * factorial(n-1), if n > 0

Le code suivant implémente une fonction récursive pour calculer factorielle :

#include <iostream>

long factorial(int n) {
  if (n == 0) {
    return 1;
  } else {
    return n * factorial(n-1);
  }
}

int main() {
  int n;
  std::cout << "Enter a non-negative integer: ";
  std::cin >> n;

  std::cout << "The factorial of " << n << " is: " << factorial(n) << std::endl;

  return 0;
}

Autres applications

La récursion peut également être utilisée pour résoudre divers problèmes, notamment :

  • Parcours d'arbres et de graphiques
  • Tri rapide et tri par fusion
  • Programmation dynamique
  • Méthode de retour en arrière

Conseils

  • Assurez-vous que la fonction récursive a un cas de base clair pour éviter une récursion infinie.
  • Utilisez la récursivité avec prudence car elle peut provoquer un débordement de pile.
  • Pour les problèmes récursifs avec un grand nombre de sous-problèmes, vous pouvez utiliser l'optimisation de la récursion des mémos ou de la queue pour améliorer l'efficacité.

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
Article précédent:Comment utiliser printf en C++Article suivant:Comment utiliser printf en C++