Würfelfarben < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:08 Fr 21.12.2012 | Autor: | Blerg |
Aufgabe | Aufgabe 2 W¨urfeln (5 Punkte)
Realisieren Sie ein Programm in der Programmiersprache Java, dass eine positive ganze Zahl n 0 vom
Bildschirm einliest. Diese Zahl beschreibt eine Anzahl von gleichenW¨urfeln mit drei Seiten: Gr¨un, Blau und
Rot. Geben Sie nun alle m¨oglichen Kombinationen der W¨urfel am Bildschirm aus, wobei die Reihenfolge
eine Rolle spielt. F¨ur zwei W¨urfel ergibt sich beispielsweise: Gr¨un Gr¨un, Gr¨un Blau, Gr¨un Rot, Blau Gr¨un,
Blau Blau, Blau Rot, Rot Gr¨un, Rot Blau, Rot Rot. Zus¨atzlich soll auch die Anzahl der Kombinationen
bestimmt und am Bildschirm ausgegeben werden. Setzen Sie ihr Programm dabei mit Hilfe einer rekursiven
Methode um. |
Hallo,
also hier hab ich mal meinen Quelltext zur Aufgabe.
(Sollen mit Java programmieren).
Der Fehler tritt in der return-Zeile auf.
Weiß vllt jemand woran das liegt?
public class A8A2 {
public static String gruen(double x) {
--x;
if (x == -1) {
return "0";
} if (x == 0) {
return "Grün ";
}
else {
return gruen(Math.pow(3.0,x));
}
}
public static String blau(double x) {
--x;
if (x == -1) {
return "0";
} if (x == 0) {
return "Blau ";
}
else {
return gruen(Math.pow(3.0,x));
}
}
public static String rot(double x) {
--x;
if (x == -1) {
return "0";
} if (x == 0) {
return "Rot ";
}
else {
return gruen(Math.pow(3.0,x));
}
}
public static void main(String[] args) {
int x, y;
Out.println("Bitte geben Sie die Anzahl der Würfel ein: ");
x = In.readInt();
while (x>0) {
Out.print (gruen(x));
Out.print (blau(x));
Out.print (rot(x));
Out.println("");
--x;
} // end of while
}
}
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 17:42 Fr 21.12.2012 | Autor: | link963 |
Hallo.
Ich kann dein Programm zwar gerade nicht ganz nachvollziehen, aber deine rekursive Methode kommt nie zum Ende für n > 1.
Zum Bespiel für n = 2. Steht dann return [mm] gruen(3^{1}). [/mm] Das schaukelt sich dann immer weiter hoch, bis dein Compiler mit einer StackOverFlow Exception abbricht.
Liebe Grüße
link963
|
|
|
|