Józef Flawiusz podczas wojny żydowsko-rzymskiej wraz 40 towarzyszami został otoczony przez Rzymian. Nie chcąc się poddać postanowili popełnić samobójstwo. Ustawili się w kręgu i co trzecia osoba odbierała sobie życie. Na końcu pozostał przy życiu przyjaciel Flawiusza oraz on sam. Oddali się w ręce wroga. Chcemy napisać aplikację, która zasymuluje nam, w jakiej kolejności ginęli żołnierze oraz, na której pozycji w kręgu ustawił się Flawiusz wraz ze swoim przyjacielem. Do rozwiązania tego problemu wykorzystamy przedstawioną wcześniej klasę
Kolejka (
Kolejka - implementacja tablicowa).
/**
* Problem Józefa Flawiusza
* @author kodatnik.blogspot.com
*/
public class JozefFlawiusz {
public static void main(String[] args) {
// zmienna przechowuje liczbę żołnierzy (Flawiusz + 40)
int zolnierze = 41;
// zmienna określa co który będzie ginął
int coKtory = 3;
// tworzymy kolejkę o rozmiarze równych liczbie żołnierzy
Kolejka k = new Kolejka(zolnierze);
// dodajemy żołnierzy do kolejki (od 1 do 41)
for (int i = 1; i <= zolnierze; i++)
k.dodaj(i);
// w pętli dopóki kolejka nie jest pusta
while ( !k.czyPusta() ) {
// przestawiamy dwóch żołnierzy z początku na koniec kolejki
for (int i = 0; i < coKtory - 1; i++)
k.dodaj(k.usun());
// eliminujemy trzeciego (usuwamy go z kolejki)
// i wyświetlamy jego numer ekranie
System.out.print(k.usun() + " ");
}
System.out.println();
}
}
Uruchomiona aplikacja:
3 6 9 12 15 18 21 24 27 30 33 36 39 1 5 10 14 19 23 28 32 37 41
7 13 20 26 34 40 8 17 29 38 11 25 2 22 4 35 16 31
Jak widać na wynikach generowanych przez program, Józef Flawiusz wraz z przyjacielem ustawili się na pozycji 16 i 31.
1 Komentarz - Problem Józefa Flawiusza
informatyka i historia
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)