例题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;
}
全部评论

相关推荐

10-29 15:51
嘉应学院 Java
后端转测开第一人:你把简历的学历改成北京交通大学 去海投1000份发现基本还是没面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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