Exercícios de bicicleta

Descrição do Problema

  Existem m alunos na Escola Secundária Afiliada da Academy of Peking University, e eles sempre tomam muitas decisões democraticamente. De acordo com as regras de procedimento de Robert, um moderador é necessário. Os alunos têm um forte senso de democracia e grande entusiasmo. Todos querem ser moderadores. Claro, há apenas um moderador. Para selecionar o anfitrião, eles pensaram em uma maneira e acharam muito democrática. O método é:
  todos formam um círculo e numeram cada aluno de 1 a m. Então comece a contar de 1 e conte até n eliminados. O restante dos alunos começa da posição inferior e depois começa a contar a partir de 1. A última coisa que resta é o anfitrião. Agora que você numerou os colegas de 1 am e concordou em relatar o número de eliminados com n, programe e calcule qual colega se tornará o anfitrião.

Formato de entrada

  Uma linha, dois inteiros mn separados por espaços.

Formato de saída

  Um número inteiro que representa o número do host

Entrada de amostra

15 3

Saída de amostra

5

Entrada de amostra

200 55

Saída de amostra

93

Tamanho de dados e convenção

  10000> m> 0; 100> n> 0; o
  limite de tempo é 1,0 segundo

#include <iostream>
using namespace std;

int main()
{
	int m,n;
	while(cin >> m >> n){
		int a[10001];
		for(int i = 1; i <= m; i++){
			a[i] = i;
		}
		int c = 0;
		int count = m;
		while(count > 1){
			for(int i = 1; i <= m; i++){
				if(a[i] != -1){
					c++;
				}
				if(c == n){
					c = 0;
					a[i] = -1;
					count--;
					if(count == 1)
					break;
				}
			}
		}
		for(int i = 1; i <= m; i++){
			if(a[i] != -1){
				cout << a[i] << endl;
			}
		}
	}
	return 0;
}

 

Acho que você gosta

Origin blog.csdn.net/qq_43629083/article/details/108894646
Recomendado
Clasificación