Wheinachtsbaum |
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo,
1. Schau mal wie breit der Baum maximal in Abhängigkeit von der Höhe werden kann.
2. wie kannst du eine einzelne Ebene so ausgeben, dass sie zentriert ist (in Abhängigkeit von einer Zeilenbreite)
3. Wie kannst du eine einzelne Stufe des Baumes ausgeben
Und dann alles zusammenfügen
VG,
Karlito
|
|
15.11.2012 09:09 |
|
|
JKU11
Jungspund
Dabei seit: 10.11.2012
Beiträge: 20
|
|
Alsooo:
Die Höhe des Baumes errechne ich mir mit (2+3+4...+n) Zeilen
Die Breite mit (n*2)-1
Also jede Pyramide: fängt mit 2 an und erhöhe um 2 solange 2^n erreicht, anschließend subtrahiere bis Ergebnis 2 ist.
Das wäre mein Algorithmus für die letzte Zeile jeder Pyramide.
Das Problem ist halt, dass ich nicht genau weiß wie ich das ganze mit Arrays realisieren soll .
MfG
|
|
15.11.2012 20:00 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Naja, Du schreibst die Werte in ein Array und gibst dieses aus? Welche Sprache sollst du denn verwenden?
VG,
Karlito
|
|
15.11.2012 20:05 |
|
|
JKU11
Jungspund
Dabei seit: 10.11.2012
Beiträge: 20
|
|
Java.
Haben mit den Arrays noch nicht viel durch genommen, daher tu ich mir ziemlich schwer :/
|
|
15.11.2012 21:37 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Mach halt mal einen Vorschlag, wie eine Methode aussähe, welche eine Zeile des Baumes in einem Array erzeugt...
VG,
Karlito
|
|
15.11.2012 21:51 |
|
|
JKU11
Jungspund
Dabei seit: 10.11.2012
Beiträge: 20
|
|
also hab hier den code. Er gibt mir aber was komischer raus und hab auch ne Fehlermeldung dazu. Nach meinem "Schreibtischtest" sollte eigentlich alles funktionieren.
public class Pyr {
public static void main(String[] args) {
int n,x;
int b;
n=Input.readInt();
int a=(2*n)-1;
int [] Zeile;
Zeile = new int[a];
for (int i=0; i<=(2*n-1);i++) {
Zeile[i]=b;
System.out.print(b);
b=b*2;
if (b>=Math.pow(2.0, n)) {
for (x=n-1; x>=1; ) {
b=b-Math.pow(2.0, x);
System.out.print(b);
x=x-1;
}
}
}
}
}
Er gibt mir folgendes auf der Konsole aus:
Input : 3
2481632Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Pyr.main(Pyr.java:13)
Drücken Sie eine beliebige Taste . . .
Keine Ahnung was da gemeint ist, die Zahlen stimmen ja nach der 8 auch nicht mehr
|
|
15.11.2012 23:40 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Schau dir mal den Schleifenkopf an...
|
|
16.11.2012 00:11 |
|
|
JKU11
Jungspund
Dabei seit: 10.11.2012
Beiträge: 20
|
|
|
16.11.2012 00:32 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Jap. Brauchst du wirklich so viele Schleifendurchläufe?
|
|
16.11.2012 00:38 |
|
|
JKU11
Jungspund
Dabei seit: 10.11.2012
Beiträge: 20
|
|
jetzt kommt wenigstens keine Fehlermeldung mehr ^^.. Hatte das b nicht gecastet.
Naja das Ouput sieht jetzt so aus :
5
248160-32-64-96-96Drücken Sie eine beliebige Taste . . .
|
|
16.11.2012 01:44 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Schau dir noch mal meinen Post an. Dann wirst du sehen, woran die komischen Ausgaben liegen.
|
|
16.11.2012 01:50 |
|
|
|