Programowanie C/C++
Lista IX
Problem Józefa Flawiusza
Józef Flawiusz byª znanym historykiem zyj¡cym w I w. Legenda gªosi, »e
gdyby nie jego talent matematyczny, nie do»yªby chwili gdy zostaª sªawny. W
czasie wojny »ydowsko-rzymskiej byª on w oddziale 41 »ydowskich buntown-
ików osaczonych przez Rzymian w jaskini. Wol¡c ±mier¢ od niewoli, buntownicy
stan¦li w kole, odliczaj¡c i zabijaj¡c co trzeci¡ osob¦. Jednak Flawiusz, wraz
ze swym przyjacielem, chci¦li unikn¡¢ bezsensownej ±mierci. Flawiusz szybko
obliczyª gdzie powinni stan¡¢, aby byli ostatnimi dwoma osobami jakie zostana
przy »yciu.
Napisz program, który dla zadanej liczby buntowników n, oraz liczby k do
ilu odliczano wyznaczaj¡c kolejn¡ oar¦, obliczy pocz¡tkowe pozycje dwóch
osób, które zostan¡ ostatnie przy »yciu. Pozycje s¡ ponumerowane od 1 do
n
. Odliczanie zaczyna si¦ od pozycji nr 1, a pierwsza oara ma numer
(k-1) % n+1.
Napisany program powinien utworzy¢ jednokierunkow¡ list¦ cykliczn¡ (lista
cykliczna to lista, w której ostatni element wskazuje na pierwszy), zawieraj¡c¡
liczby 1,...,n a nast¦pnie symulowa¢ (drukowa¢) przebieg zdarze« usuwaj¡c kole-
jne oary z listy.
1