Guten Tag,
Ich möchte gerne die Ausgabe von folgenden Code nachvollziehen:
Bei einem anderen Beispiel mit nur einem rekursiven Aufruf und nur einem print Aufruf empfand ich es als ziemlich leicht zu durchschauen weswegen die Ausgabe aussieht wie sie es tat. Jedoch verwirrt mich die Ausgabe bei diesem Code. Mit dem Wert 3 erhält man damit 11223113.
Mich verwirrt dabei wie genau der Code nun vorgeht, die Methode ruft sich ja immer wieder selbst auf bis n = 0 ist, bei dem Beispiel mit 3.
Wird dabei nun der erste rekursive Ausdruck solange durch geführt bis die 3 auf 0 ist und danach der 2.? Oder werden die beiden nacheinander ausgeführt und beginnt die Methode dann wieder von vorne?
Ich möchte gerne die Ausgabe von folgenden Code nachvollziehen:
Code:
public class Recursive {
public static void main(String[] args) {
calc(3);
}
public static void calc(int n) {
if(n <= 0) return;
calc(n-1);
System.out.print(n);
calc(n-2);
System.out.print(n);
}
}
Mich verwirrt dabei wie genau der Code nun vorgeht, die Methode ruft sich ja immer wieder selbst auf bis n = 0 ist, bei dem Beispiel mit 3.
Wird dabei nun der erste rekursive Ausdruck solange durch geführt bis die 3 auf 0 ist und danach der 2.? Oder werden die beiden nacheinander ausgeführt und beginnt die Methode dann wieder von vorne?