Rekursion in C meistern: Best Practices & Abbruchbedingungen
Rekursion ist der Prozess der Wiederholung von Elementen auf eine selbstähnliche Weise. In Programmiersprachen, wenn ein Programm erlaubt, eine Funktion innerhalb derselben Funktion aufzurufen, spricht man von einem rekursiven Funktionsaufruf.
void recursion() {
recursion(); /* Funktion ruft sich selbst auf */
}
int main() {
recursion();
}
Die C-Programmiersprache unterstützt Rekursion, d.h., eine Funktion kann sich selbst aufrufen. Bei der Verwendung von Rekursion müssen Programmierer jedoch vorsichtig sein, eine Abbruchbedingung für die Funktion zu definieren, andernfalls gerät sie in eine Endlosschleife.
Rekursive Funktionen sind sehr nützlich, um viele mathematische Probleme zu lösen, wie die Berechnung der Fakultät einer Zahl, die Generierung der Fibonacci-Folge usw.
Zahlenfakultät
#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-Folge
Das folgende Beispiel generiert die Fibonacci-Folge für eine gegebene Zahl mithilfe 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 – Ihre erste C#-Anwendung erstellen
- C# Keywords und Identifiers verstehen: Regeln, Listen und Best Practices
- C# Variablen & Primitive Datentypen meistern: Der komplette Guide
- C# Operatoren – Umfassender Leitfaden zu Operatoren in C#
- C# Bitweise und Bit-Shift-Operatoren meistern: Umfassender Leitfaden
- C# Grundlagen: Eingabe und Ausgabe Essentials
- C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
- C# Kommentare meistern: Arten, Best Practices und XML-Dokumentation
- C# Break Statement: Wie und wann man es einsetzt
- C# Continue Statement meistern: Schleifeniterationen effektiv überspringen