Hallo, ich bin Java Anfänger und versuche die rekursive Programmierung zu erlernen.
Mir ist leider nicht ganz klar, wie Rekursion mit verschiedenen Variablen funktioniert.
Folgendes Beispiel:
Anhand der Aufgabe sollen die Methodenaufrufe nachvollzogen und ein Protokoll ausgegeben werden.
Daher sollte für rec(4,0) folgendes ausgeben werden:
Nur wie gehe ich hier jetzt vor?
Einfache rekursive Methoden beherrsche ich, nur wie funktioniert das ganze mit Variablen, die als rekursive Methode definiert sind? Ich kann ja nur einen Int Wert zurückgeben.
Wenn ich mit int a die ersten 5 Zeilen ausgeben will und nur einen Wert zurückgeben kann, würde ich die fortlaufende Nummer nehmen. Nur wie komme ich jetzt in die Methode simple rein?
Komplizierter wird es noch dadurch, dass ich nur die mit TODO gekennzeichneten Bereiche anpassen darf.
Mir ist leider nicht ganz klar, wie Rekursion mit verschiedenen Variablen funktioniert.
Folgendes Beispiel:
Java:
public class Aufgabe3 {
private static int simple(int line) {
System.out.println("" /* TODO: Ausdruck anpassen */);
return (-1 /* TODO: Ausdruck anpassen */);
}
private static int rec(int i, int line) {
System.out.println("" /* TODO: Ausdruck anpassen */);
if (i > 0) {
int a /* TODO: Variable anpassen */ = rec(i - 1, (-1 /* TODO: Ausdruck anpassen */));
int b /* TODO: Variable anpassen */ = simple(-1 /* TODO: Ausdruck anpassen */);
int c /* TODO: Variable anpassen */ = rec(i - 1, (-1 /* TODO: Ausdruck anpassen */));
return (-1 /* TODO: Ausdruck anpassen */);
}
return (-1 /* TODO: Ausdruck anpassen */);
}
}
Daher sollte für rec(4,0) folgendes ausgeben werden:
1 rec(4, 0)
2 rec(3, 1)
3 rec(2, 2)
4 rec(1, 3)
5 rec(0, 4)
6 simple(5)
7 rec(0, 6)
8 simple(7)
9 rec(1, 8)
10 rec(0, 9)
Nur wie gehe ich hier jetzt vor?
Einfache rekursive Methoden beherrsche ich, nur wie funktioniert das ganze mit Variablen, die als rekursive Methode definiert sind? Ich kann ja nur einen Int Wert zurückgeben.
Wenn ich mit int a die ersten 5 Zeilen ausgeben will und nur einen Wert zurückgeben kann, würde ich die fortlaufende Nummer nehmen. Nur wie komme ich jetzt in die Methode simple rein?
Komplizierter wird es noch dadurch, dass ich nur die mit TODO gekennzeichneten Bereiche anpassen darf.