Hi! Ich habe eine Aufgabe über rekursive Methoden.
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(6,4)?
In welcher Reihenfolge und mit weclehm Parametern wird f dabei rekursiv aufgerufen?
Lsg:
Ich setzte also x = 6 und y = 4.Daraus folgt, dass bei der If-Schleife das 2. else nehmen muss. Dann setze ich x und y ein und bekomme:
2 * f(6 - 3, 4 / 3) - f(6 - 2, 4 + 1)
2 *f (3 , 4/3) - f (4 ,5 )
Was muss ich jetzt machen? Wie bekomme ich den "Wert" von f (6,4) bzw. was ist hier unter Wert zu verstehen?
Welche Reihenfolge hier aufgerufen wir weiß ich leider auch nicht.
Ich hoff ihr könnt mir helfen
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(6,4)?
In welcher Reihenfolge und mit weclehm Parametern wird f dabei rekursiv aufgerufen?
Lsg:
Ich setzte also x = 6 und y = 4.Daraus folgt, dass bei der If-Schleife das 2. else nehmen muss. Dann setze ich x und y ein und bekomme:
2 * f(6 - 3, 4 / 3) - f(6 - 2, 4 + 1)
2 *f (3 , 4/3) - f (4 ,5 )
Was muss ich jetzt machen? Wie bekomme ich den "Wert" von f (6,4) bzw. was ist hier unter Wert zu verstehen?
Welche Reihenfolge hier aufgerufen wir weiß ich leider auch nicht.
Ich hoff ihr könnt mir helfen