Hallo Leute.
Bin absoluter java noob.
Ich möchte das Tannenbaumproblem gerne mit einer (oder mehreren) while-Schleifen lösen. Warum nicht mit "for"?weil: zu Übungszwecken. Eingabe soll nur die maximale Sternanzahl sein, die der Baum in der untersten Reihe hat. Ich weiß, wie man beispielsweise x Sterne in x Zeilen mit einer while Schleife ausgibt. Leider nicht die Lösung des Problems.
Die Zeilenanzahl hier ist ja; falls gerade - Zeilenanzahl = Sternanzahl/2
falls ungerade - Zeilenanzahl = (Sternanzahl+1) /2
Mein Problem ist, dass ich nicht genau weiß, wie man nach jedem Durchlauf die Sterne ausgibt. Startwert ist 1.
In der nächsten Zeile sollen dann 3 Sterne, dann 5 ... ausgegeben werden.
Dazu kommt dann ja noch das Leerzeichenproblem.
Ich möchte keine Komplettlösung, sondern gerne einen Ansatz.
Alles hoch und runterzählen führt bei mir zu Fehlern oder nicht zu dem was ich will.
Das ist mein Grundgerüst:
Bin absoluter java noob.
Ich möchte das Tannenbaumproblem gerne mit einer (oder mehreren) while-Schleifen lösen. Warum nicht mit "for"?weil: zu Übungszwecken. Eingabe soll nur die maximale Sternanzahl sein, die der Baum in der untersten Reihe hat. Ich weiß, wie man beispielsweise x Sterne in x Zeilen mit einer while Schleife ausgibt. Leider nicht die Lösung des Problems.
Die Zeilenanzahl hier ist ja; falls gerade - Zeilenanzahl = Sternanzahl/2
falls ungerade - Zeilenanzahl = (Sternanzahl+1) /2
Mein Problem ist, dass ich nicht genau weiß, wie man nach jedem Durchlauf die Sterne ausgibt. Startwert ist 1.
In der nächsten Zeile sollen dann 3 Sterne, dann 5 ... ausgegeben werden.
Dazu kommt dann ja noch das Leerzeichenproblem.
Ich möchte keine Komplettlösung, sondern gerne einen Ansatz.
Alles hoch und runterzählen führt bei mir zu Fehlern oder nicht zu dem was ich will.
Das ist mein Grundgerüst:
Java:
JAVA]import java.io.*;
class Tannenbaum
{
public static void main ( String[] args ) throws IOException
{
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String eingabe;
int maxstern, i, j, zeile;
System.out.println("maximale anzahl der sterne pro zeile: ");
eingabe = input.readLine();
maxstern = Integer.parseInt(eingabe);
//
while()
{
}
}
}