#include <iostream>
#include <queue>
using namespace std;
int main(void)
{
int m,n,num=1;
queue<int>q;
cin>>m>>n;
for(int i=1;i<=m;i++)
q.push(i);
while(!q.empty())
{
if(num==n){
if(q.size()==2)
{
q.pop();
cout<<q.front();
break;
}
q.pop();//符合条件的人将其弹出,出队。
num = 1;
}
else
{
num++;
q.push(q.front());//将其加入队尾,实现转圈报数的目的。
q.pop();//将报完数的人踢出(否则和队尾的重复)
}
}return 0;
}
queue解决约瑟夫环
最新推荐文章于 2023-10-25 18:30:03 发布