Grundlagen der Rekursion
Teil des Abschnitts Grundlagen der C-Journey von Coddy. Lektion 50 von 63.
Rekursion ist eine Technik, bei der eine Funktion sich selbst aufruft, um ein Problem zu lösen. Es ist wie das Lösen eines großen Problems, indem man es in kleinere, ähnliche Probleme aufteilt.
Sehen wir uns eine einfache rekursive Funktion an, die die Fakultät berechnet:
int factorial(int n) {
// Basisfall: Die Fakultät von 0 oder 1 ist 1
if (n <= 1) {
return 1;
}
// Rekursiver Fall: n! = n * (n-1)!
return n * factorial(n - 1);
}Jede rekursive Funktion benötigt:
- Einen Basisfall, um die Rekursion zu beenden
- Einen rekursiven Fall, der sich auf den Basisfall zubewegt
Zum Beispiel die Berechnung von factorial(3):
- factorial(3) ruft factorial(2) auf
- factorial(2) ruft factorial(1) auf
- factorial(1) gibt 1 zurück (Basisfall)
- factorial(2) gibt 2 * 1 = 2 zurück
- factorial(3) gibt 3 * 2 = 6 zurück
Aufgabe
EinfachErstelle eine Funktion namens sumToN, die Rekursion verwendet, um die Summe der Zahlen von 1 bis n zu berechnen.
Zum Beispiel:
- sumToN(3) sollte 6 (1 + 2 + 3) zurückgeben
- sumToN(5) sollte 15 (1 + 2 + 3 + 4 + 5) zurückgeben
Deine Funktion sollte:
- Einen Basisfall verwenden, wenn n 1 ist (1 zurückgeben)
- Andernfalls n plus die Summe der Zahlen von 1 bis (n-1) zurückgeben
Probier es selbst
#include <stdio.h>
// Schreibe deine sumToN-Funktion hier
// Ändere die main()-Funktion nicht
int main() {
int n;
scanf("%d", &n);
printf("%d", sumToN(n));
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Kontrollfluss
If-AnweisungIf - ElseElse-IfSwitch-CaseTernärer OperatorWiederholungs-ChallengeVerschachteltes If - Else7Funktionen
Eine Funktion deklarierenRückgabetypenParameterWiederholungsaufgabe Nr. 1Grundlagen der RekursionFunktionsprototypenWiederholungsaufgabe Nr. 22Variablen
DatentypenGanzzahlGleitkommazahl – DoubleZeichenBoolesche WerteKonstantenprintf-GrundlagenRegeln für die Benennung von VariablenTypumwandlung Teil 1Typumwandlung Teil 2Wiederholungsaufgabe3Operatoren
Arithmetische OperatorenModulo-OperatorInkrement/DekrementZuweisungsoperatorenVergleichsoperatorenLogische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Wiederholungs-ChallengeÜbe selbstständig: Online-C-Compiler