Rekursion ist eine Technik, bei der sich eine Funktion selbst aufruft, und wird häufig in Szenarien verwendet, in denen Probleme Schritt für Schritt gelöst werden. In C++ hat die Rekursion die folgenden allgemeinen Verwendungszwecke: Lösen von Fibonacci-Zahlen, Berechnen von Fakultäten, Berechnen von Permutationen und Kombinationen, Durchqueren von Baumstrukturen, Lösen von Labyrinth-Lösungsproblemen Wissenschaftliche Technik, die es einer Funktion ermöglicht, sich selbst aufzurufen. Es wird häufig in Szenarien eingesetzt, die eine schrittweise Problemlösung erfordern. In diesem Artikel werden die üblichen Verwendungsmöglichkeiten der Rekursion in C++ untersucht und anhand praktischer Fälle veranschaulicht.
Grundlegende Verwendung: Fibonacci-Folge
Die einfachste rekursive Verwendung besteht darin, die Fibonacci-Folge zu finden. Jede Zahl in dieser Folge ist die Summe der beiden vorherigen Zahlen. Die spezifische Implementierung ist wie folgt:int fibonacci(int n) { if (n <= 1) { return 1; } else { return fibonacci(n - 1) + fibonacci(n - 2); } }
int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } }
Permutation:
int permutations(int n, int r) { if (r == 0) { return 1; } else { return n * permutations(n - 1, r - 1); } }
Kombination:
int combinations(int n, int r) { if (r == 0 || n == r) { return 1; } else { return combinations(n - 1, r - 1) + combinations(n - 1, r); } }
Binärbaum-Vorbestellungsdurchquerung:
void preorderTraversal(TreeNode* root) { if (root != nullptr) { std::cout << root->val; preorderTraversal(root->left); preorderTraversal(root->right); } }
bool solveMaze(int x, int y, int** maze) { if (maze[x][y] == 2) { return true; } else if (maze[x][y] == 0) { return false; } else { maze[x][y] = 0; return solveMaze(x + 1, y, maze) || solveMaze(x, y + 1, maze) || solveMaze(x - 1, y, maze) || solveMaze(x, y - 1, maze); } }
Das obige ist der detaillierte Inhalt vonRekursive Implementierung von C++-Funktionen: Was sind die häufigsten Verwendungszwecke der Rekursion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!