题目描述
M只猴子要选大王,选举办法如下:
所有猴子按1∼M编号围坐一圈
从第1号开始按顺序1∼N报数,凡报到N的猴子退出到圈外
如此循环报数,直到圈内只剩下一只猴子时,这只猴子就是大王
M和N由键盘输入,打印出最后剩下的那只猴子的编号
输入格式
输入两个整数M,N
输出格式
输出一个整数表示大王的编号
输入样例
8 3
输出样例
7
数据规模
对于全部的数据0<M≤50,0<N≤300
#include<bits/stdc++.h>
using namespace std;
int main(){
int M,K;
cin>>M>>K;
int cnt=0,num=M;
int a[1001];
for(int i=0; i<M; i++){
a[i]=1;
}
while(num>1){
for(int i=0; i<M; i++){
if(a[i]==1){
++cnt;
}
if(cnt==K){
a[i]=0;
num--;
cnt=0;
}
if(num==1){
break;
}
}
}
for(int i=0; i<M; i++){
if(a[i]==1){
cout<<i+1;
}
}
return 0;
}
对不起各位,代码没选语言,没有颜色,现在改一下。