M
mausi_1986
Gast
Hallo!
Ich sitze grade an folgender Aufgabe:
Gegeben sei die folgende rekursiv definierte Methode f:
Welchen Wert liefert ein Aufruf von f(7,8)? In welcher Reihenfolge und mit welchen Parametern
wird f dabei rekursiv aufgerufen? Geben Sie die Reihenfolge der Aufrufe explizit
an.
Die Lsg. dazu habe ich auch, aber ich verstehe das nicht so ganz, hier die Lsg.:
Lösung:
1. Aufruf: f( 7, 8)
2. Aufruf: f( 4, 2)
3. Aufruf: f( 5, 9)
4. Aufruf: f( 2, 3)
5. Aufruf: f(-1, 1)
6. Aufruf: f( 0, 4)
7. Aufruf: f( 3,10)
8. Aufruf: f( 0, 3)
9. Aufruf: f( 1,11)
10. Aufruf: f(-2, 3)
11. Aufruf: f(-1,12)
f( 7, 8) = -3
Anzahl der Aufrufe: 11
Kann mir mal bitte ejemand erklären wie ich vom 1. Aufruf zum 2. Aufruf komme?
Ich hätte für den 2. Aufruf : f(3,-5) geschrieben, und wie komme ich zum schluss auf f(7,8) = -3? Bzw. wann weiss ich wann ich aufhören muss...
Bin für jede Hilfe dankbar
lg mausi_1986
Ich sitze grade an folgender Aufgabe:
Gegeben sei die folgende rekursiv definierte Methode f:
Java:
static int f(int x, int y) {
if (x < 1)
return -1;
else if (y <= 2)
return -2;
else
return 2 * f(x - 3, y / 3) - f(x - 2, y + 1);
}
Welchen Wert liefert ein Aufruf von f(7,8)? In welcher Reihenfolge und mit welchen Parametern
wird f dabei rekursiv aufgerufen? Geben Sie die Reihenfolge der Aufrufe explizit
an.
Die Lsg. dazu habe ich auch, aber ich verstehe das nicht so ganz, hier die Lsg.:
Lösung:
1. Aufruf: f( 7, 8)
2. Aufruf: f( 4, 2)
3. Aufruf: f( 5, 9)
4. Aufruf: f( 2, 3)
5. Aufruf: f(-1, 1)
6. Aufruf: f( 0, 4)
7. Aufruf: f( 3,10)
8. Aufruf: f( 0, 3)
9. Aufruf: f( 1,11)
10. Aufruf: f(-2, 3)
11. Aufruf: f(-1,12)
f( 7, 8) = -3
Anzahl der Aufrufe: 11
Kann mir mal bitte ejemand erklären wie ich vom 1. Aufruf zum 2. Aufruf komme?
Ich hätte für den 2. Aufruf : f(3,-5) geschrieben, und wie komme ich zum schluss auf f(7,8) = -3? Bzw. wann weiss ich wann ich aufhören muss...
Bin für jede Hilfe dankbar
lg mausi_1986