/* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Fevrier 2005 */ import java.io.*; public class JosephusFlavius1 { static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in)); public static int eliminationJosephusFlavius(int n,int k) { int pos = 1; boolean [] mort = new boolean[n]; mort[0] = true; System.out.println("Mort de "+0); for ( int i = 1 ; i < n ; i++ ) mort[i] = false; for ( int i = 0 ; i < n-1 ; i++ ) { int cpt = 0; while ( cpt != k ) { if ( !mort[pos] ) cpt++; if ( cpt != k ) pos = (pos+1)%n; } System.out.println("Mort de "+pos); mort[pos] = true; pos = (pos+1)%n; } return((pos+n-1)%n); } /* Fonction principale */ public static void main(String [] args) throws IOException { /* Lecture au clavier du nombre de soldats */ System.out.print("Nombre de soldats : "); int n = Integer.valueOf(flux.readLine()).intValue(); /* Lecture au clavier du nombre de soldats parcourus */ /* a chaque elimination */ System.out.print("Taille des sauts : "); int k = Integer.valueOf(flux.readLine()).intValue(); System.out.println("Le dernier soldat etait le numero " +eliminationJosephusFlavius(n,k)); } }