C - Rekursion
Rekursion ist der Prozess der Wiederholung von Elementen auf selbstähnliche Weise. Wenn ein Programm Ihnen erlaubt, eine Funktion innerhalb derselben Funktion aufzurufen, wird dies in Programmiersprachen als rekursiver Aufruf der Funktion bezeichnet.
void recursion() { recursion(); /* function calls itself */ } int main() { recursion(); }
Die Programmiersprache C unterstützt Rekursion, d. h. eine Funktion, die sich selbst aufruft. Bei der Verwendung von Rekursion müssen Programmierer jedoch darauf achten, eine Beendigungsbedingung für die Funktion zu definieren, da sie sonst in eine Endlosschleife übergeht.
Rekursive Funktionen sind sehr nützlich, um viele mathematische Probleme zu lösen, wie z. B. das Berechnen der Fakultät einer Zahl, das Erzeugen von Fibonacci-Reihen usw.
Zahl Fakultät
Das folgende Beispiel berechnet die Fakultät einer gegebenen Zahl unter Verwendung einer rekursiven Funktion −
Live-Demo#include <stdio.h> unsigned long long int factorial(unsigned int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 12; printf("Factorial of %d is %d\n", i, factorial(i)); return 0; }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −
Factorial of 12 is 479001600
Fibonacci-Reihe
Das folgende Beispiel generiert die Fibonacci-Reihe für eine gegebene Zahl unter Verwendung einer rekursiven Funktion −
Live-Demo#include <stdio.h> int fibonacci(int i) { if(i == 0) { return 0; } if(i == 1) { return 1; } return fibonacci(i-1) + fibonacci(i-2); } int main() { int i; for (i = 0; i < 10; i++) { printf("%d\t\n", fibonacci(i)); } return 0; }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −
0 1 1 2 3 5 8 13 21 34
C Sprache
- C# Hello World – Ihr erstes C#-Programm
- C#-Schlüsselwörter und Bezeichner
- C#-Variablen und (primitive) Datentypen
- C#-Operatoren
- C# Bitwise- und Bit-Shift-Operatoren
- C# Grundlegende Ein- und Ausgabe
- C#-Ausdrücke, -Anweisungen und -Blöcke (mit Beispielen)
- C#-Kommentare
- C# break-Anweisung
- C#-Continue-Anweisung