Java -Rekursionsdrucksternungsstern aus einem Methodenaufruf
Posted: 14 Sep 2025, 11:04
Ich habe eine Aufgabe, die Rekursion in Java einführt, und ich stoße auf eine Straßensperre. Die Zuordnung erfordert eine Rekursionsmethode, um eine Anzahl von Zeilen einer Reihe von Sternchen auszugeben, abhängig vom an ihn übergebenen Ganzzahlwert. Wenn 4 als Variable N übergeben wird, hätte die Ausgabe eine erste Zeile von einem Sternchen, Nächste Zeile 2 -Sternchen, nächste 3 Sternchen, nächste 4, dann 4, 3, 2. Dies ist alles in einem Methodenaufruf mit einer Variablen (n), die an die Methode übergeben wird. < /P>
Hier ist die Methode, die ich bisher habe: public static void myMethod(int n)
{
if (n
Es wird aus dem Main aufgerufen: < /p>
myMethod(n);
< /code>
Ich habe also eine für Schleife, die ein Sternchen in derselben Zeile 'n' Zeiten druckt. Nach der für die Loop geht es in die nächste Zeile und Zyklen, wodurch n ändert. Aber ich habe keine Ahnung, wie ich es umkehren kann. Mein Ausbilder zeigte mir eine Beispielversion, die 2 Variablen (n) und eine Null -Zeichenfolge bestanden hat. < /P>
public static String myMethod(int n, String displayStr) {
String currentStr = "";
for (int i = 0; i < n; i++)
currentStr += "*";
currentStr += "\n";
if (displayStr == null){
return myMethod((n - 1), currentStr);
} // end base case
else if (n > 0){
return myMethod((n - 1), (currentStr + displayStr + currentStr));
}
else {
return displayStr;
}
} // end recursion method myMethod
< /code>
Seine Version druckt aus der folgenden Codezeile: < /p>
System.out.println(myMethod(n, null));
< /code>
Ich habe seine Version ausprobiert und es druckt das Dreieck auf der Seite, aber die größte Zeile druckt nur einmal anstelle von zweimal. Ich habe den ganzen Tag damit verbracht, seine zu ändern, um eine doppelte Linie in der Mitte hinzuzufügen, und ich fange an zu glauben, dass dies nicht möglich ist. Ich bin damit im vollständigen Stillstand.
Hier ist die Methode, die ich bisher habe: public static void myMethod(int n)
{
if (n
Es wird aus dem Main aufgerufen: < /p>
myMethod(n);
< /code>
Ich habe also eine für Schleife, die ein Sternchen in derselben Zeile 'n' Zeiten druckt. Nach der für die Loop geht es in die nächste Zeile und Zyklen, wodurch n ändert. Aber ich habe keine Ahnung, wie ich es umkehren kann. Mein Ausbilder zeigte mir eine Beispielversion, die 2 Variablen (n) und eine Null -Zeichenfolge bestanden hat. < /P>
public static String myMethod(int n, String displayStr) {
String currentStr = "";
for (int i = 0; i < n; i++)
currentStr += "*";
currentStr += "\n";
if (displayStr == null){
return myMethod((n - 1), currentStr);
} // end base case
else if (n > 0){
return myMethod((n - 1), (currentStr + displayStr + currentStr));
}
else {
return displayStr;
}
} // end recursion method myMethod
< /code>
Seine Version druckt aus der folgenden Codezeile: < /p>
System.out.println(myMethod(n, null));
< /code>
Ich habe seine Version ausprobiert und es druckt das Dreieck auf der Seite, aber die größte Zeile druckt nur einmal anstelle von zweimal. Ich habe den ganzen Tag damit verbracht, seine zu ändern, um eine doppelte Linie in der Mitte hinzuzufügen, und ich fange an zu glauben, dass dies nicht möglich ist. Ich bin damit im vollständigen Stillstand.