Hallo,
hab folgende aufgabe bei der ich nicht weiterkomme:
von einem haufen kieselsteine dürfen in einem zug entweder 3 oder 7 steine entfernt werden. man hat das spiel gewonnen, wenn keine steine mehr übrig sind und man hat verloren, wenn ein oder zwei steine noch liegen.
jetzt soll ich eine rekursive mehtode schreiben, die für eine zahl n von kieselsteinen prüft, ob die aufgabe lösbar ist oder nicht.
mein problem ist, wie ich das formuliere und das dann auch noch rekursiv.
ich hatte das bis jetzt nur so formuliert:
aber damit prüfe ich ja nur, ob die zahl ein vielfaches von 3 oder 7 ist.
ich muss es ja so formulieren, dass er die zahl abzieht und dann guckt, ob er noch mal eine zahl abziehen kann.
z.B. bei der zahl n=16, müsste das programm ja erst 7 abziehen und dann sehen, dass man nochmal 3 mal 3 abziehen kann und nicht nochmal 7 abziehen und bei 2 enden.
find das ganz schön kompliziert und hoffe mir kann jemand dabei helfen.
hab folgende aufgabe bei der ich nicht weiterkomme:
von einem haufen kieselsteine dürfen in einem zug entweder 3 oder 7 steine entfernt werden. man hat das spiel gewonnen, wenn keine steine mehr übrig sind und man hat verloren, wenn ein oder zwei steine noch liegen.
jetzt soll ich eine rekursive mehtode schreiben, die für eine zahl n von kieselsteinen prüft, ob die aufgabe lösbar ist oder nicht.
mein problem ist, wie ich das formuliere und das dann auch noch rekursiv.
ich hatte das bis jetzt nur so formuliert:
Java:
public class RekursivesSpiel1
{
public static void main (String [] args) {
int n = 13;
System.out.println (spiel (n));
}
static boolean spiel ( int n ) {
if (n==0) {
return false;
}
else {
if (n%3==0 || n%7==0) {
return true;
}
else {
return false;
}
}
}
}
aber damit prüfe ich ja nur, ob die zahl ein vielfaches von 3 oder 7 ist.
ich muss es ja so formulieren, dass er die zahl abzieht und dann guckt, ob er noch mal eine zahl abziehen kann.
z.B. bei der zahl n=16, müsste das programm ja erst 7 abziehen und dann sehen, dass man nochmal 3 mal 3 abziehen kann und nicht nochmal 7 abziehen und bei 2 enden.
find das ganz schön kompliziert und hoffe mir kann jemand dabei helfen.