public static void main(String[] args) {
System.out.println(potenzRechner(4,3));
}
public static int potenzRechner(int potenzzahl1, int potenzzahl2) {
if (potenzzahl2 == 0) {
return 1;
} else if (potenzzahl2 == 1) {
return potenzzahl1;
} else {
return potenzzahl1 * potenzRechner(potenzzahl1, potenzzahl2 - 1);
}
}
Ich habe den Code oben mit einer Rekursiven Methode, der die Potenz der mitgegebenen Zahlen (in dem Fall 4 und 3) errechnet. Jedoch kann ich nicht 100% nachvollziehen was im letzten else Zweig passiert.
(return potenzzahl1 * potenzRechner(potenzzahl1, potenzzahl2 - 1);)
Wird Potenzzahl1 (4) nicht mit sich selbst (4) mal genommen, und das Potenzzahl2 (2) mal? Also 4 * 4 * 4 = 64? Und das solange bis Potenzzahl2 bei 1 ankommt. Also (4^3) 4 * 4 * 4 = 64, (4^2) 4 * 4 = 16, (4^1) 4 = 4. Oder verstehe ich was falsch? Dann sollte doch theoretisch das Ergebnis (64) beim ersten durchlauf schon rauskommen, für was dann eine Aufgabe bei der man das Rekursiv machen soll?
Zusammengefasst: Kann mir jemand auf gut Deutsch diesen Ausdruck, in der die Rekursion sattfindet, erklären?