Rekursion in C

Einführung

Eine Funktion, die sich selbst aufruft or Aufruf einer Funktion innerhalb derselben Funktion wird in C als Rekursion bezeichnet. Der Aufruf einer Funktion an sich selbst erfolgt so lange, bis die 'Basisbedingung' erreicht ist. Rekursion kann verwendet werden, um große Probleme zu lösen, wie zum Beispiel die Summe der 1st zehn natürliche Zahlen.

Beispiel

#enthalten int summe (int a) { int s; if (a==1) { return a;// base condition } else { s=a+ sum(a-1); }            kehrt zurück; } int main() { int k; k=Summe(10); printf("Summe der ersten 1 natürlichen Zahlen:\n %d",k); 10 zurückgeben; }

Ausgabe

Rekursion in C

Erläuterung

int Summe (int a) Eine Funktion namens 'sum' vom Datentyp 'int' wird mit einer als Argument übergebenen Variablen vom Typ 'int' deklariert. In ihrer Definition gibt die 'if'-Bedingung 1 zurück, wenn 'a' gleich 1 ist. Andernfalls wird der else-Teil ausgeführt.

s=a+ Summe(a-1) Diese Anweisung ruft die Funktion 'sum' mit 'a-1' als Argument auf.

Die Funktion 'main ( )' ruft die Funktion 'sum' auf, indem sie 10 als Argument übergibt. Da der Wert von 'a' 10 beträgt, wird der 'sonst'-Teil der Funktionsdefinition ausgeführt.

's=10+Summe (10-1)' wird das Ergebnis sein, wenn 'a=10' übergeben wird. Jetzt ruft sich die Summenfunktion mit 'a=9' auf. Und dieser Vorgang geht so lange, bis aus 'a' 1 wird.

s=10+Summe (9)

s=10+(9+Summe (8))

s=10+9+(8+Summe (7))

s=10+9+8+(7+sum (6))

s=10+9+8+7+(6+sum (5))

s=10+9+8+7+6+(5+sum (4))

s=10+9+8+7+6+5+(4+sum (3))

s=10+9+8+7+6+5+4+(3+sum (2))

s=10+9+8+7+6+5+4+3+(2+sum (1))

s=54+Summe (1)

Der Wert von 'a' ist jetzt 1, was bedeutet, dass es die Grundbedingung erreicht hat. Die 'if'-Bedingung wird wahr und gibt nur 'a' zurück, dh1. Wir bekommen also,

s=54+1

s = 55, der Wert, der auf dem Ausgabebildschirm angezeigt wird. Auf diese Weise wird dieser lange Prozess sehr einfach mit 'Rekursion' gelöst.

Hinterlassen Sie eine Nachricht

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.