Maison > développement back-end > C++ > le corps du texte

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

WBOY
Libérer: 2024-05-01 11:24:01
original
906 Les gens l'ont consulté

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);
}
Copier après la connexion

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
Copier après la connexion

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;
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal