例题5.2约瑟夫问题No.2

//用queue来做,还可以用结构体做
//每次循环都使报数为1的小孩永远位于队列头
#include <iostream>
#include <queue>
using namespace std;

int main()
{
queue<int> ysf;
int n,p,m;
cin>>n>>p>>m;

for(int i=1;i<=n;i++)
{
ysf.push(i);
}

for(int i=1;i<p;i++)
{
ysf.pop();
ysf.push(i);
}

while(!ysf.empty())
{
for(int i=1;i<m;i++)
{
int x=ysf.front();
ysf.pop();
ysf.push(x);
}
int y=ysf.front();
if(ysf.size()!=1)
{
cout<<y<<&quot;,&quot;;
}
else
cout<<y;
ysf.pop();
}

return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务