74 lines
2.5 KiB
Java
74 lines
2.5 KiB
Java
class Aufgabe {
|
|
public static void main(String[] args) {
|
|
final int RECHTS = 1;
|
|
final int LINKS = 0;
|
|
final int NUM_FROESCHE = 100000;
|
|
|
|
// Neuer Frosch startet bei Feld 1.
|
|
int position = 1;
|
|
int position_max = 0;
|
|
|
|
// Es gibt zwei Eimer in welchen ein Frosch landen kann.
|
|
// Eimer bei Index 0 ist der linke Eimer.
|
|
// Eimer bei Index 1 ist der rechte Eimer.
|
|
int[] eimer = {0, 0};
|
|
|
|
// Auf der Zahlengerade springt der aktuelle Frosch.
|
|
// Das Feld 0 ist bereits ein Eimer (der rechte Eimer).
|
|
// Wenn der Frosch den Index auf der linken Seite verlässt springt er in den linken Eimer.
|
|
int[] zahlengerade = new int[1000];
|
|
|
|
// Die Zahlengerade wird initialisiert. Am Anfang zeigen alle Felder nach rechts.
|
|
// 0 = Frosch springt nach links.
|
|
// 1 = Frosch springt nach rechts.
|
|
for(int i = 0; i < zahlengerade.length; i++) {
|
|
zahlengerade[i] = RECHTS;
|
|
}
|
|
|
|
// Schleife mit welcher alle Frösche durchlaufen werden.
|
|
// Es ist immer nur ein Frosch auf der Zahlengerade unterwegs.
|
|
for(int anzahl_froesche = NUM_FROESCHE; anzahl_froesche > 0; anzahl_froesche--) {
|
|
position = 1;
|
|
|
|
// Der Frosch bewegt sich so lange auf der Zahlengerade bis dieser in einen Eimer fällt.
|
|
// Es steht ein Eimer auf Index 0 und Index -1.
|
|
while(position > 0) {
|
|
|
|
// Wenn der Frosch das Feld berüht ändert sich die Richtung des Felds.
|
|
zahlengerade[position] = (zahlengerade[position] == RECHTS) ? LINKS : RECHTS;
|
|
|
|
// Je nach Richtung muss der Frosch jetzt springen.
|
|
if (zahlengerade[position] == RECHTS) {
|
|
position += 1;
|
|
|
|
// Die maximale Position soll gespeichert werden.
|
|
if (position_max < position) {
|
|
position_max = position;
|
|
}
|
|
} else {
|
|
|
|
// Der Frosch soll nach links springen.
|
|
// Er könnte jetzt in einen Eimer springen.
|
|
if (position == 1) {
|
|
|
|
// Der Frosch springt in den linken Eimer.
|
|
eimer[0]++;
|
|
} else if (position == 2) {
|
|
|
|
// Der Frosch springt in den rechten Eimer.
|
|
eimer[1]++;
|
|
}
|
|
|
|
// Der Frosch springt nach links (evtl. in einen Eimer).
|
|
position -= 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Ausgabe der wichtigsten Informationen.
|
|
System.out.printf("Linker Eimer (Index -1): %d Frösche\n", eimer[0]);
|
|
System.out.printf("Rechter Eimer (Index 0): %d Frösche\n", eimer[1]);
|
|
System.out.printf("Maximale Position auf der Zahlengerade: %d\n", position_max);
|
|
}
|
|
}
|