Ich habe ein Problem bezüglich folgender Aufgabe:
Also, man soll eine Zahl eingeben können, z.B. n=4. Danach soll ein Muster ausgegeben werden.
Jede Zeile soll 3^n Zeichen enthalten.
In der ersten Zeile soll die Anzahl der Zeichen durch 3 geteilt werden und der erste Abschnitt mit "." gefüllt werden, der zweite mit "*" und der dritte wieder mit "." .
In der zweiten Zeile sollen die zuvor mit "." gefüllten Abschnitte wieder in drei Teile geteilt werden, und wieder je ein Drittel mit ".", dann "*" und dann "." gefüllt werden. Die Abschnitte die mit "*" gefüllt waren sollen einfach durch "." ersetzt werden.
Das ganze soll dann n mal gemacht werden, also soll es n Zeilen geben.
Das was ich bis jetzt habe, berechnet die Anzahl der Zeichen pro Zeile und gibt die erste Zeile aus.
Die weiteren Zeilen sind aber problematisch..
Ich glaube, das ganze rekursiv zu lösen wäre vielleicht am sinnvollsten.
Vielleicht hat ja jemand eine Idee wie es weiter gehen könnte.
Vielen Dank schonmal im Voraus
Also, man soll eine Zahl eingeben können, z.B. n=4. Danach soll ein Muster ausgegeben werden.
Jede Zeile soll 3^n Zeichen enthalten.
In der ersten Zeile soll die Anzahl der Zeichen durch 3 geteilt werden und der erste Abschnitt mit "." gefüllt werden, der zweite mit "*" und der dritte wieder mit "." .
In der zweiten Zeile sollen die zuvor mit "." gefüllten Abschnitte wieder in drei Teile geteilt werden, und wieder je ein Drittel mit ".", dann "*" und dann "." gefüllt werden. Die Abschnitte die mit "*" gefüllt waren sollen einfach durch "." ersetzt werden.
Das ganze soll dann n mal gemacht werden, also soll es n Zeilen geben.
Das was ich bis jetzt habe, berechnet die Anzahl der Zeichen pro Zeile und gibt die erste Zeile aus.
Die weiteren Zeilen sind aber problematisch..
Ich glaube, das ganze rekursiv zu lösen wäre vielleicht am sinnvollsten.
Vielleicht hat ja jemand eine Idee wie es weiter gehen könnte.
Vielen Dank schonmal im Voraus
Java:
class Test {
public static void main(String[] args) {
int b = In.readInt();
double x = Math.pow(3,b);
String value = new String();
Out.println(ersteZeile(value, x));
}
static String ersteZeile(String value, double x) {
double p = x / 3;
while (value.length() < p) {
value += ".";
}
double s = 2 * p;
while (value.length() < s) {
value += "*";
}
while (value.length() < x) {
value += ".";
}
return value;
}
}