Ich habe eine Aufgabe zur Einführung der Rekursion in Java und stoße auf eine Hürde. Die Zuweisung erfordert eine Rekursionsmethode, um abhängig vom übergebenen ganzzahligen Wert eine Anzahl von Zeilen mit einer Anzahl von Sternchen auszugeben. Wenn beispielsweise 4 als Variable n
übergeben wird, würde die Ausgabe eine erste Zeile mit einem Sternchen, die nächste Zeile mit 2 Sternchen, die nächsten 3 Sternchen, die nächste 4, dann 4, 3, 2 und 1 enthalten, die nach unten gehen.
Ich konnte die erste Hälfte der Ausgabe fertigstellen (ich bin mir jedoch nicht sicher, ob sie optimal ist), habe aber keine Ahnung, wie ich die Methode dazu bringen kann, wieder nach unten umzukehren. Dies alles muss in einem Methodenaufruf erledigt werden, wobei eine Variable (n) an die Methode
übergeben wird.
Hier ist die Methode, die ich bisher habe:
Code: Select all
public static void myMethod(int n)
{
if (n 0){
return myMethod((n - 1), (currentStr + displayStr + currentStr));
}
else {
return displayStr;
}
} // end recursion method myMethod
Seine Version wird von main mit der folgenden Codezeile gedruckt:
Code: Select all
System.out.println(myMethod(n, null));
Ich habe seine Version ausprobiert und sie druckt das Dreieck auf der Seite, aber die größte Linie wird nur einmal statt zweimal gedruckt. Ich habe den ganzen Tag damit verbracht, seine zu ändern, um eine doppelte Zeile in der Mitte einzufügen, und fange an zu glauben, dass das nicht möglich ist.
Jede Hilfe wäre sehr dankbar. Ich bin damit völlig ratlos.