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); } }