Methoden Rekursive Methode mit String als Rückgabe

visruker

Neues Mitglied
Ich bin gerade dabei ein Arbeitsblatt für die Uni zu machen und habe auch alle Aufgaben schnell lösen können. Allerdings gibt es eine Methode bei der ich einfach nicht weiterkomme, ich habe schon so ziemlich jede Ausgabe erreicht nur nicht die, die gefragt ist 😀 ich will auch keine direkte Lösung sonder nur einen kleinen Tip der mich in die richtige Richtung leitet 🙂

Aufgabenstellung:
Java:
// recString(n) liefert einen String mit dem Inhalt i gefolgt von i Punkten, wenn i > 0;
// z.B., recString(4) liefert "4....";
// und liefert nur Punkte wenn i <= 0; z.B., recString(-4) liefert "....".
bis jetzt sieht meine Methode so aus:
Java:
private static String recString(final int i) {
return (i == 0 ? "" : i > 0 ? i + recString(i - 1) + "." : recString(i + 1) + ".");
}
Klarerweise liefert mir diese Methode wenn ich sie printen lasse folgendes:
"4321...." statt "4...."
Für 0 und negative Zahlen hab ich schon die richtige Ausgabe erreicht, aber bei den positiven Zahlen verstehe ich nicht wie ich mit Rekursion erreiche, dass nur die größte Zahl vor den Punkten ausgegeben wird 🙁

Wichtige Information: Es soll NUR das return-Statement geändert werden, sonst darf die Methode nicht verändert werden!

Danke schon mal im Vorraus!
 
Zuletzt bearbeitet von einem Moderator:
In einer einzigen rekursiven Methode, die nur >0 als Parameter akzeptiert, ist das nicht möglich....
Die Aufgabenstellung ist ja reichlich komisch^^
 
Tipp: Wenn du recString mit -i aufrufst, kannst du bei positiven Zahlen auch Punkte erzeugen.

Java:
private static String recString(final int i) {
return (i == 0 ? "" : i > 0 ? i + recString(-i) : recString(i + 1) + ".");
}
 

Zurück
Oben