Maison > Article > développement back-end > Implémentation récursive des fonctions C++ : Application de la récursion dans les concours de programmation ?
La récursion est une technique dans laquelle une fonction s'appelle pour résoudre un problème, y compris une condition de base pour mettre fin à la récursion. En C++, vous pouvez utiliser le mot-clé return pour renvoyer une valeur de fonction et mettre fin à la récursion. La récursivité peut être utilisée pour résoudre des problèmes classiques tels que le problème de la Tour de Hanoï, où elle déplace n disques d'un pôle à un autre. Dans les compétitions de programmation, la récursivité est couramment utilisée pour résoudre des problèmes structurés en arborescence, effectuer une recherche en profondeur d'abord, revenir en arrière et diviser pour régner.
Implémentation récursive de la fonction C++ : Application de la récursivité dans les concours de programmation
Qu'est-ce que la récursivité ?
La récursion est une technique de programmation où une fonction s'appelle pour résoudre un problème. Une fonction récursive contient généralement une condition de base lorsque la condition de base est atteinte, la fonction arrête la récursion et renvoie un résultat. Sans condition de base, la récursion continuera pour toujours.
Implémentation de la récursion en C++
En C++, vous pouvez utiliser le mot clé return
pour renvoyer la valeur de la fonction et terminer la récursion : return
返回函数的值并终止递归:
int factorial(int n) { if (n == 0) { return 1; // 基线条件 } else { return n * factorial(n - 1); } }
实战案例:汉诺塔问题
汉诺塔问题是一个经典的递归问题,涉及将 n 个圆盘从一个杆移动到另一个杆,每次只能移动一个圆盘,并且较大的圆盘不能放在较小的圆盘之上。
以下是使用递归解决汉诺塔问题的 C++ 函数:
void hanoi(int n, int from, int to, int via) { if (n == 1) { cout << "Move disk 1 from " << from << " to " << to << endl; return; } hanoi(n - 1, from, via, to); cout << "Move disk " << n << " from " << from << " to " << to << endl; hanoi(n - 1, via, to, from); }
在该函数中,
n
是圆盘的数量from
、to
和 via
rrreeeLe problème de la Tour de Hanoï est un problème récursif classique qui consiste à déplacer n disques d'un pôle à un autre. Un seul disque peut être déplacé à la fois, et les disques plus grands ne peuvent pas être placés entre des disques plus petits.
Ce qui suit est une fonction C++ qui utilise la récursion pour résoudre le problème de la Tour de Hanoï :
rrreeen
est le nombre de disquesde code>, <code>to
et via
sont des valeurs entières représentant les pôles 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!