/*----------------------------------------------------------*/ /* */ /* AUTHOR : Eric VIOLARD */ /* E-MAIL : violard@icps.u-strasbg.fr */ /* ORGANISM : Université Louis Pasteur (Strasbourg) */ /* CREATION : 28/12/02 */ /* */ /* ---------------------------------------------------------*/ /* Programme qui résoud le problème de Josephus Flavius. */ #include #include #define N 40 /* nombre de soldats dans le cercle */ #define K 3 /* nombre tel que chaque K-ième soldat vivant dans le parcours circulaire est tué */ /* --- Définition du type des booléens --- */ typedef int bool; #define true 1 #define false 0 main() { bool cercle[N]; /* tableau représentant le cercle de soldats : cercle[n] représente l'état du soldat placé à la place numéro (n+1) dans le cercle (les places sont numérotées de 1 à N) */ int i; /* pour parcourir le cercle */ int k=1; /* compteur de 1 à K (permet de désigner la K-ième personne) */ int nb_tues=0; /* nombre de tués (initialement 0) */ /* --- initialisation du cercle --- */ for(i=0;i