Saque el elemento m-ésimo cada vez de un círculo que contiene n números, encuentre el último número restante y proporcione el programa
Finalmente solo queda 1 persona izquierda */
int JohnsonRing(int longitud, int seg)
{
int arr [100];
int i, k , n;
/* Establece el indicador de salida de cada persona: 0 en la cola, 1 en la cola*/
for(i=0; i arr[i] = 0; } i = 0; k = 1; > n = length; while(n > 1) { if(arr[i] == 1){ /* La persona en la posición actual ha salido y se ha movido a la siguiente posición */ i = (i + 1) % longitud; continuar; } if(k == seg) { /* La persona en la ubicación actual sale*/ arr[i] = 1; n--; printf( "%d\n" , i+1); i = (i + 1) % longitud; k = 1; } p> else { /* Continuar informando números*/ k++; i = (i + 1) % longitud; } p> } for(i=0; i return i+1; } void main() { int permanecer; int m, n; m = 6; n = 3; printf("Fuera de servicio :\n"); permanecer = JohnsonRing(m, n); p> printf ("Último restante: %d\n", permanece); }