描述:n个孩子围成一个圈,给每人一个编号,从第一个孩子开始报数,从1开始报数,报到3的孩子退出圈,他的下一个孩子从1开始继续报数。输出出圈顺序和最终获胜者。
#include<bits/stdc++.h>
using namespace std;
/*
10
1 2 3 4 5 6 7 8 9 10
*/
struct student{
int num;
int flag;
};
int main(){
int n;
cin>>n;
student stu[n];
for(int i=0;i<n;i++){
cin>>stu[i].num;
stu[i].flag=1;
}
int ans=0;
int num=1;
while(1){
if(ans==n-1) break;
for(int i=0;i<n;i++){
if(stu[i].flag){
if(num==3){
stu[i].flag=0;
ans++;
num=1;
cout<<stu[i].num<<" ";
}
else{
num++;
}
}
}
}
cout<<endl;
for(int i=0;i<n;i++){
if(stu[i].flag){
cout<<stu[i].num<<endl;
break;
}
}
return 0;
}