蓝桥杯 书院主持人 模拟
作者:互联网
问题描述
北大附中书院有m个同学,他们每次都很民主地决策很多事情。按罗伯特议事规则,需要一个主持人。同学们民主意识强,积极性高,都想做主持人,当然主持人只有一人。为了选出主持人,他们想到了一个办法并认为很民主。方法是:
大家围成一圈,从1到m为每个同学编号。然后从1开始报数, 数到n的出局。剩下的同学从下位开始再从1开始报数。最后剩下来的就是主持人了。现在已经把同学从1到m编号,并约定报数为n的出局,请编程计算一下,哪个编号的同学将会成为主持人。 输入格式 一行,由空格分开的两个整数m n。 输出格式 一个整数,表示主持人的编号 样例输入 15 3 样例输出 5 样例输入 200 55 样例输出 93 数据规模和约定 10000>m>0; 100>n>0;
时间限制1.0秒 是的没错,又是一道围成一个圈开始数数,谁数到n谁出局的俄罗斯转盘游戏。 同样的题目为什么我又写了一篇题解呢。 因为这道题目我debug了一小时。。。 细节啊细节啊,仰天长叹。 话说输出中间变量来debug的方法真好。 AC代码
大家围成一圈,从1到m为每个同学编号。然后从1开始报数, 数到n的出局。剩下的同学从下位开始再从1开始报数。最后剩下来的就是主持人了。现在已经把同学从1到m编号,并约定报数为n的出局,请编程计算一下,哪个编号的同学将会成为主持人。 输入格式 一行,由空格分开的两个整数m n。 输出格式 一个整数,表示主持人的编号 样例输入 15 3 样例输出 5 样例输入 200 55 样例输出 93 数据规模和约定 10000>m>0; 100>n>0;
时间限制1.0秒 是的没错,又是一道围成一个圈开始数数,谁数到n谁出局的俄罗斯转盘游戏。 同样的题目为什么我又写了一篇题解呢。 因为这道题目我debug了一小时。。。 细节啊细节啊,仰天长叹。 话说输出中间变量来debug的方法真好。 AC代码
1 #include <bits/stdc++.h> 2 using namespace std; 3 bool vis[10010]; //vis[i]=true表示i已经出局 4 int main() { 5 int m, n; 6 cin >> m >> n; 7 int t = 0; //当前数到的数字 8 int cnt = 0; //当前已经出局的人数 9 for (int i = 1; i <= m; i++) { //遍历1~m个人 10 if (cnt == m - 1) { //如果已出局m-1人,则最后一人为答案 11 for (int j = 1; j <= m; j++) { 12 if (vis[j] == false) { 13 cout << j << endl; 14 } 15 } 16 return 0; 17 } 18 if (vis[i] == true) { 19 if (i == m) { 20 i = 0; 21 } 22 continue; 23 } else { 24 t++; 25 //cout << i << " " << t << endl; 26 if (t == n) { 27 vis[i] = true; 28 t = 0; 29 cnt++; 30 } 31 } 32 if (i == m) { 33 i = 0; 34 } 35 } 36 return 0; 37 }
标签:同学,出局,int,主持人,样例,蓝桥,书院,报数,模拟 来源: https://www.cnblogs.com/fx1998/p/12716158.html