Über einen Stern-Muster
Ich versuche zu drucken, unten Stern-Muster
*
***
*****
***
*
Ich bin mit unten-Logik drucken :
*
***
*****
Code für die erste Hälfte:
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= i; j++)
System.out.print("*");
for (j = i - 1; j >= 1; j--)
System.out.print("*");
System.out.println();
}
Aber ich bin noch nicht sicher, wie drucken Sie die gesamte Struktur.
- Was sind die konkreten Anforderungen? Müssen Sie verwenden
for
Schleifen? Auch die Anzahl von Zeilen haben, um flexibel zu sein? Ansonsten könnte man nur verwenden, *\n***\n usw. - Übrigens, der smart wird auf diese Weise zum ausführen der Schleife mit
for (i = -a; i <= +a; ++i)
. Dann die Anzahl der Sterne zu drucken, in der Zeile ist der formn - |i|
, wo|i|
bezeichnet den absoluten Wert desi
.n
ist wahrscheinlicha + 1
. - Dies ist eine Hausaufgaben-Frage, ja?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Sie gerade haben, zu schreiben, reverse loop, zu dem upperBound - 1. Siehe code unten:
Wird es vielleicht Sinn machen, zu gehen, als in einfachen Schritten wie möglich.
Ersten, müssen Sie fünf Linien, so
Nächsten, auf der Linie
i
bestimmen Sie die Anzahl der Sternchen, die Sie gehen, um. Es ist fünf Sternchen auf der Linie 3, zwei weniger, mit jedem Schritt oberhalb oder unterhalb dieser Linie.Dann, so legen Sie diese in einer einzelnen Schleife:
Und beinhalten ein newline:
Die Muster bestehen aus
N * 2 - 1rows
. Für jede Zeile, die Spalten sind in aufsteigender Reihenfolge bisNth row
. NachNth row columns
gedruckt sind, in absteigender Reihenfolge.Schritt für Schritt beschreibenden Logik zu drucken, die Hälfte diamond-star-Muster.
N
.columns = 1
.1 to N * 2 - 1
. Die loop-Struktur Aussehen solltefor(i=1; i<N*2; i++)
.for(j=1; j<=columns; j++)
. Innerhalb dieser Schleife drucken Sterne.Nach der inneren Schleife überprüfen
if(i <= N)
dann erhöhtcolumns
sonst Dekrementieren um 1.