有 nn人围成一圈,顺序排号。从第 1 个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后留下的是原来的第几号。
输入格式
初始人数 n(1≤n≤100)
输出格式
最后一人的初始编号
#include<bits/stdc++.h>
const int N = 1e5 + 10;
int a[N];
using namespace std;
int main()
{
int n,ans=0;
cin>>n;
queue<int>q;
for(int i=1;i<=n;i++)
{
q.push(i);
}
while(!q.empty())
{
ans=q.front();
for(int i=1;i<3;i++)
{
int x=q.front();
q.pop();
q.push(x);
}
q.pop();
}
cout<<ans;
return 0;
}