Hallo alle,
von 10 Gefängnisinsassen sollen 2 begnadigt werden. Dazu stellen sich die Gefängnisinsassen in einer Reihe auf und durch fortlaufendes Abzählen wird jeder dritte aus der Reihe entfernt, bis nur noch zwei übrig bleiben. An welche Stelle muss sich Klaus begeben, wenn er begnadigt werden möchte?
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 /* Nr. 3, 6 und 9 fallen raus */
1 2 4 5 7 8 10
1 2 4 5 7 8 10
1 4 5 8 10
1 4 5 8 10
4 5 10
4 5 10
4 10
Klaus muss sich also an Position 4 oder 10 stellen, wenn er begnadigt werden möchte.
a) Leider hat das Gefängnis 1000 Insassen …
b) Verallgemeinere das Programm so, dass aus einer Liste mit N Elementen fortlaufend jedes K-te Element entfernt wird bis nur noch (K-1) Elemente übrig sind und der Abzählprozess an einer beliebigen Stelle beginnt.
Lösungen können per PM als gut und ausführlich kommentierter Quelltext in jeder beliebigen Programmiersprache eingereicht werden.
Bis demnächst
Matthias
Pantoffeltierchen haben keine Hobbys.