queue
#include<queue>
queue<int>q;
q.push(i);
q.front();
q.back();
q.pop();
q.empty();
约瑟夫环问题
已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。请输出依次出圈人的编号
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<queue>
using namespace std;
int main()
{
int n,m,nowNum=1;
queue<int> q;
cin>>n>>m;
for(int i=1;i<=n;i++)
q.push(i);
while (!q.empty())
{
if (nowNum==m)
{
cout<<q.front()<<" ";
q.pop();
nowNum=1;
}
else
{
nowNum++;
q.push(q.front());
q.pop();
}
}
return 0;
}