[LUG.ro] Josephus, problema de programacion

Alfredo Casados lugro@lugro.org.ar
Sat, 7 May 2005 19:55:33 -0500


Durante las guerras judeo-romanas, N personas se encontraron sitiadas
en una cueva. Debido al tipo de secretos que ellos conocen, saben que
es preferible morir antes de ser capturados vivos por el enemigo y
aunque de acuerdo a su entrenamiento, ante esta situación, deben
suicidarse; deciden formaron un círculo asignándose números
consecutivamente de 1 a N a partir de una persona determinada.
Contando a partir de la persona número 1, la M-ésima persona es
ejecutada por su compañero anterior. Cerrando nuevamente el círculo y
comenzando a contar desde la persona que seguía a la que fue
ejecutada, al llegar al M-ésimo lugar se ejecutó a esa persona. El
proceso debía repetirse hasta que sólo quedase una persona, quien
debía suicidarse. Se te pide una aplicación en c++  que simule la
secuencia de las muertes, quien los mató y quien se suicida. Por
ejemplo:

a)	Para N= 8 y M= 4

La Salida en pantalla deberá ser:

La persona 3 está matando a la persona 4
La persona 7 está matando a la persona 8
La persona 3 está matando a la persona 5
La persona 1 está matando a la persona 2
La persona 7 está matando a la persona 1
La persona 7 está matando a la persona 3
La persona 6 está matando a la persona 7
La persona 6 se suicida.

El orden de ejecución de las personas es:
4 8 5 2 1 3 7 6

b)	Para N= 9 y M= 3

La Salida en pantalla deberá ser:

La persona 2 está matando a la persona 3
La persona 5 está matando a la persona 6
La persona 8 está matando a la persona 9
La persona 2 está matando a la persona 4
La persona 7 está matando a la persona 8  
La persona 2 está matando a la persona 5
La persona 1 está matando a la persona 2
La persona 1 está matando a la persona 7
La persona 1 se suicida.

El orden de ejecución de las personas es:
3 6 9 4 8 5 2 7 1


espero que alguien pueda resolverlo

Alfredo Casados