【 题目描述 】
有N只猴子选大王,先从头到尾1~3开始报数,报到3的猴子退出,报至尾后,再从头接着报,同样是1~3报数,报到3的猴子退出,…,最后剩下的一只猴子即为大王。
输入N,求猴子大王的编号。
【 输入 】
输入一个整数N(1<=N<=100)
【 输出 】
输出最后的猴子大王的编号
【 样例输入 】
4
【 样例输出 】
1
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, m=3,i;
cin>>n;
int a[300];
int pas=0;
int num=0;
for (i=1;i<=n;i++){
a[i]=i;
}
for (i=1; ;i++){
if (i>n){
i=1;
}
if (a[i]>0){
num++;
}
if (m==num&&pas!=n-1){
num = 0;
a[i] = 0;
pas++;
}
else{
if (m==num&&pas==n-1){
cout<<a[i];
break;
}
}
}
return 0;
}