Heim >Backend-Entwicklung >C++ >Rekursive Implementierung von C++-Funktionen: Ein klassisches Rätselbeispiel für Rekursion?

Rekursive Implementierung von C++-Funktionen: Ein klassisches Rätselbeispiel für Rekursion?

PHPz
PHPzOriginal
2024-04-22 15:27:02951Durchsuche

Rekursion ist eine Programmiertechnik, die es einer Funktion ermöglicht, sich selbst aufzurufen, um komplexe Probleme zu lösen, indem sie sie in Unterprobleme zerlegt. In einem praktischen Fall die rekursive Implementierung des Turm-von-Hanoi-Rätsels: 1. Wenn nur eine Scheibe vorhanden ist, bewegen Sie sich direkt zum Zielturm. 2. Bewegen Sie die kleine Scheibe zum Hilfsturm. 3. Bewegen Sie die größte Scheibe zum Zielturm. 4. Bewegen Sie die kleine Scheibe vom Hilfsturm zum Zielturm.

C++ 函数的递归实现:递归的经典谜题示例?

Rekursive Implementierung einer C++-Funktion: klassisches Rätselbeispiel

Rekursion ist eine Programmiertechnik, die es einer Funktion ermöglicht, sich selbst aufzurufen, um ein Problem zu lösen. Dies eignet sich für komplexe Probleme, die in Teilprobleme zerlegt werden müssen.

Syntax der rekursiven Funktion

In C++ lautet die Syntax der rekursiven Funktion wie folgt:

return_type function_name(parameter_list) {
  // 处理基线情况
  if (base_condition) {
    return base_result;
  }
  
  // 处理递归情况
  return function_name(updated_parameter_list);
}

Wobei:

  • return_type ist der von der Funktion zurückgegebene Typ. return_type 是函数返回的类型。
  • function_name 是函数的名称。
  • parameter_list 是传递给函数的参数列表。
  • base_condition 是递归的基线情况,它决定函数的递归循环何时结束。
  • base_result 是当基线情况为 true 时函数返回的结果。
  • updated_parameter_list
  • function_name ist der Name der Funktion.

parameter_list ist die an die Funktion übergebene Parameterliste.

base_condition ist die Grundbedingung der Rekursion, die bestimmt, wann die rekursive Schleife der Funktion endet.

base_result ist das von der Funktion zurückgegebene Ergebnis, wenn die Grundsituation true ist. updated_parameter_list ist die Parameterliste, die beim rekursiven Aufruf der Funktion aktualisiert wird.

🎜🎜Praktischer Fall: Turm von Hanoi 🎜🎜Der Turm von Hanoi ist ein klassisches rekursives Puzzle. Es verfügt über drei Türme mit jeweils einer unterschiedlichen Anzahl an Scheiben. Das Ziel besteht darin, alle Scheiben vom ersten Turm zum dritten Turm zu bewegen und dabei sicherzustellen, dass die kleineren Scheiben immer oben auf den größeren Scheiben liegen. 🎜
void hanoi(int n, char from, char to, char aux) {
  // 基线情况:只有一个圆盘时,直接移动到目标塔
  if (n == 1) {
    cout << "移动盘子 " << n << " 从塔 " << from << " 到塔 " << to << endl;
    return;
  }
  
  // 递归情况:将塔上的较小圆盘移动到辅助塔
  hanoi(n-1, from, aux, to);
  
  // 将最大的圆盘移动到目标塔
  cout << "移动盘子 " << n << " 从塔 " << from << " 到塔 " << to << endl;
  
  // 将较小的圆盘从辅助塔移动到目标塔
  hanoi(n-1, aux, to, from);
}

int main() {
  int num_disks;
  cout << "请输入圆盘数量:";
  cin >> num_disks;
  
  // 调用递归函数解决汉诺塔问题
  hanoi(num_disks, 'A', 'C', 'B');
  
  return 0;
}
🎜🎜Ausgabe: 🎜🎜
请输入圆盘数量:3
移动盘子 1 从塔 A 到塔 C
移动盘子 2 从塔 A 到塔 B
移动盘子 1 从塔 C 到塔 B
移动盘子 3 从塔 A 到塔 C
移动盘子 1 从塔 B 到塔 A
移动盘子 2 从塔 B 到塔 C
移动盘子 1 从塔 A 到塔 C

Das obige ist der detaillierte Inhalt vonRekursive Implementierung von C++-Funktionen: Ein klassisches Rätselbeispiel für Rekursion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn