Wie kann man in Java eine Zeichenformation ausgeben?
Es soll mit nur einer Abfrage wie viele Zeilen man haben möchte solche Formationen ausgegeben werden:
Beispiele für Vs bestehend aus 2, 4 bzw. 5 Zeilen:
Das ganze soll mittels zwei einer for schleife in welcher je eine for schleife für die Leerzeichen vor dem Backslash und eine for für die Leerzeichen zw. Backslash und Slash, realisiert werden.
Any thoughts?
2 Antworten
![](https://images.gutefrage.net/media/user/ralphdieter/1444750340_nmmslarge.jpg?v=1444750340000)
Eine Schleife brauchst Du auf jeden Fall für die einzelnen Zeilen. die Leerzeichen in einer Schleife auszugeben, ist dagegen unnötig. Verwende lieber " ".repeat(i) für i Blanks.
Eine Zeile i ∈ { 1, 2, 3, ... N } besteht aus b(i, N) führenden Blanks, einem "\", f(i, N) Füllblanks, einem "/" und einem Zeilenende:
System.out.print(" ".repeat(b(i, N))+"\\"+" ".repeat(f(i, N))+"/\n");
oder
System.out.printf("%s\\%s/\n", " ".repeat(b(i, N)), " ".repeat(f(i, N)));
Du brauchst nur noch die richtigen Formeln für b() und f(): b(i, N)=i-1 ist einfach, und f(i, N) findest Du selbst heraus. Das Schöne an dieser Aufgabe ist ja, dass Du gleich siehst, wenn die Formel nicht ganz stimmt :)
![](https://images.gutefrage.net/media/user/NackterGerd/1459631419191_nmmslarge__4_21_414_414_4344501cccc644450d864209d1253d34.jpg?v=1459631419000)
Du hast di Lösung doch schon ganz genau beschrieben!
- Abfrage der Zeilennummer
- Eine Schleife für sie Leerzeichen vor dem V (Einfach mal im Bild abzählen wieviele Leerzeichen müssen denn in jeder Zeile sein)
- Eine Schleife die ein \ zeichnet dann Leerzeichen (einfach abzählen im Bild) die für die jeweilige Zeile notwendig sind ausgeben dann ein / anzeigen und Zeilenumbruch
Das war es doch schon
![](https://images.gutefrage.net/media/user/NackterGerd/1459631419191_nmmslarge__4_21_414_414_4344501cccc644450d864209d1253d34.jpg?v=1459631419000)
Aber wieso?
Immer soviel Leerzeichen wie dein i (Zeile-1)
D.h. in der ersten 0
In der zweiten 1
Ind der dritten 2 ... Leerzeichen
![](https://images.gutefrage.net/media/user/NackterGerd/1459631419191_nmmslarge__4_21_414_414_4344501cccc644450d864209d1253d34.jpg?v=1459631419000)
Natürlich nicht nach der Schleife das \
Sondern in der Schleife. Der Zähler ist ja die Zeile
Und in jeder Zeile kommt erst Leerzeichen dann \ dann die 2.Schleife mit Leerzeichen dann /
Also Schleife in Schleife!
für die Leerzeichen links hätte ich for(i=0;i <= AnzahlZeilen;i++) und dann eine Leerzeichen Ausgabe und nach der Schleife eine \ Ausgabe. Aber so funkt es nicht ganz