Endrekursion Java - Hilfe?

voodoo44

Enthusiast
Thread Starter
Mitglied seit
25.08.2005
Beiträge
506
Moinsen, ich hab da mal eine Frage.

Ich versuche gerade etwas von Rekursion in Endrekursion zu überführen.
Endrekursion: ich muss nach dem "drübergehen" nicht mehr "zurück", wenn ich das richtig verstanden habe. SPrich: die letzte Rekursion gibt nur noch den fertigen Wert, ohne Berechnung, zurück.

Code:
public static int endrekursiv(int x, int y) {
    if (x < 10) {
        return Math.pow(x, y);
    }
    return Math.pow(x % 10, y) + endrekursiv(x / 10, ++y); 
}

Grob habe ich dahingehend verstanden, was man machen müsste: das Zwischenergebnis der Berechnung (pow(x%10,y) muss ich wohl irgendwie als Argument an die endrekursiv-Methode übergeben.

Die Abbruchbedingung ist hier meiner Meinung nach klar die x<10-Bedingung.

Hat hier irgendjemand irgendwie einen Denkansatz?

Edit:

Nach ein bisschen grübeln und probieren:

Passt das so? Die Ergebnisse sind zumindest richtig, aber ist das endrekursiv?
Ich denke ja, weil: der letzte Call ist keine "Rechenoperation", sondern schlichtweg wiederum entweder ein Funktionsaufruf oder eben das Ergebnis mit dem "pow".

Code:
public static int endrekursiv(int x, int y, int erg) {            
    if (x < 10) {
        return erg + Math.pow(x % 10, y);
    }

    erg += Math.pow(x % 10, y);
    return endrekursiv(x / 10, ++y, erg); 
}
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh