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

相关推荐

不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 18:05
哈哈哈哈哈感觉朋友找工作的已经疯掉了,直接上图
码农索隆:真老板娘:“我嘞个去,这不我当年的套路吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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