Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln!

Doppelle

Neues Mitglied
Ich habe ein Problem, ich habe folgenden Java Code:

Java:
     public static int penalize(int n) {
     int h=0;
     for (int i=1; i<n; i++) h=h+2*i*penalize(i);
     if (n<3) h=n;
     return(h);
     }

Nun stelle ich mir die Frage, ob ich mir die mehrfachen Rekursiven Aufrufe ersparen kann? Es wäre super wenn es es eine Methode geben würde die nur einen Rekursiven Aufruf benötigen würde!

Schonmal sehr vielen Dank im voraus für die Mühen!!!

Doppelle
 
Zuletzt bearbeitet:
Hallo.
Wenn man mal Sinn und Zweck der Methode beiseite lässt, und die Methode dem Sinn nach etwas umstellt, dann komme ich auf folgendes Ergebnis:
Java:
    public static int penalize(int n) {
        if (n < 3) {
            return n;
        }else{
            int h=0;
            for (int i=1; i<n; i++) h=h+2*i*penalize(i);
            return h;
        }
    }
Damit werden schon mal einige unnötige Rekursionen eleminiert.
 

Zurück
Oben