Aufgabenblock — AFB I
Zehn Standardaufgaben zum Reproduzieren: rekursive Methoden auswerten, Aufrufe zählen, Aufrufbäume zeichnen, Mischen und Zerlegen von Hand ausführen. Das sind die sicheren Punkte in jeder Klausur zu Rekursion.
Die Methode aus dem Unterricht berechnet die Anzahl der Dosen einer Pyramide mit n Reihen:
static int dosen(int n) {
if (n == 0) {
return 0;
}
return n + dosen(n - 1);
}Geben Sie den Wert von dosen(5) und die Anzahl aller Aufrufe von dosen an.
n > 0 wartet auf dosen(n − 1); erst dosen(0) liefert ohne Selbstaufruf 0.Lösung anzeigen
static long fakultaet(int n) {
if (n <= 1) {
return 1;
}
return n * fakultaet(n - 1);
}Nennen Sie den Rückgabewert von fakultaet(5) und die Rekursionstiefe, also die größte Zahl gleichzeitig offener Aufrufe.
fakultaet(1).Lösung anzeigen
static int fib(int n) {
if (n <= 1) {
return n;
}
return fib(n - 1) + fib(n - 2);
}Stellen Sie den Aufrufbaum von fib(5) dar und geben Sie den Rückgabewert sowie die Anzahl der Knoten (Aufrufe) an.
