Hallo zusammen,
ich bin was Programmierung angeht glaube noch eher bei den Anfängern.
Ich habe einen Code (Aufgabe) , indem ich die Werte bei jedem Durchgang der Rekursion ausgeben muss. Ich habe jedoch keine weiteren Ideen mehr, vielleicht könnt ihr mir helfen.
Folgende Methode ist gegeben:
static int f(int x, int y) {
System.out.println(x + " " + y);
if (x <= 1) {
return 2;
} else if (y <= 0) {
return 1;
} else
return 2 * (f(x + 1, y - 3) - f(x - 3, y)) + 1;
Das mit der Rekursion fällt mir noch ziemlich schwer. Für den Aufruf mit f(5,4) bekomme ich folgende Bildschirmausgabe:
5 4
6 1
7 -2
3 1
4 -2
0 1
2 4
3 1
4 -2
0 1
-1 4
21
Ich komme bis zur 3 Zeile irgendwie mit, doch dann hörts auf.
Also mein Anliegen/Frage:
Wie entsteht die Ausgabe hier?
Wann muss ich die 2 draufmultiplizieren soll ich die rekursiven Aufrufe voneinander abziehen, kann ich das und wenn ja wie?
Danke schonmal im Voraus
MfG, Taso44
PS: Sorry, die Frage ist vlt etwas länger geraten, ist auch mein erster Beitrag
ich bin was Programmierung angeht glaube noch eher bei den Anfängern.
Ich habe einen Code (Aufgabe) , indem ich die Werte bei jedem Durchgang der Rekursion ausgeben muss. Ich habe jedoch keine weiteren Ideen mehr, vielleicht könnt ihr mir helfen.
Folgende Methode ist gegeben:
static int f(int x, int y) {
System.out.println(x + " " + y);
if (x <= 1) {
return 2;
} else if (y <= 0) {
return 1;
} else
return 2 * (f(x + 1, y - 3) - f(x - 3, y)) + 1;
Das mit der Rekursion fällt mir noch ziemlich schwer. Für den Aufruf mit f(5,4) bekomme ich folgende Bildschirmausgabe:
5 4
6 1
7 -2
3 1
4 -2
0 1
2 4
3 1
4 -2
0 1
-1 4
21
Ich komme bis zur 3 Zeile irgendwie mit, doch dann hörts auf.
Also mein Anliegen/Frage:
Wie entsteht die Ausgabe hier?
Wann muss ich die 2 draufmultiplizieren soll ich die rekursiven Aufrufe voneinander abziehen, kann ich das und wenn ja wie?
Danke schonmal im Voraus
MfG, Taso44
PS: Sorry, die Frage ist vlt etwas länger geraten, ist auch mein erster Beitrag