关于约瑟夫环的问题(c++),输出?

有n个小朋友围成一个圈,编号1~N。现在从1号小朋友开始顺时针报数(第一个报1,依次报数),当报到m时,将报数者删除。并从下一个小朋友开始重新报数。问,最后一个留下的小朋... 有n个小朋友围成一个圈,编号1~N。现在从1号小朋友开始顺时针报数(第一个报1,依次报数),当报到m时,将报数者删除。并从下一个小朋友开始重新报数。问,最后一个留下的小朋友编号是谁?第一张是我自己打的,有错啊 展开
 我来答
左思雁Pk
2020-07-30 · TA获得超过765个赞
知道小有建树答主
回答量:350
采纳率:75%
帮助的人:292万
展开全部

错误标注

修改版本

随手打了一个,你的那一个跳不出循环,不知道从哪里改起。

int joseph_cir(int n, int m)

{

int left = n; //剩余的人数

int chidren[1001] = { 0 };

int count = 0;

while (left > 1)

{

for (int i = 1; i <= n; i++)

{

if (!chidren[i]) count++;

if (count == m) chidren[i] = 1, count = 0, left--;

}

}


for (int i = 1; i <= n; i++)

{

if (!chidren[i]) return i;

}

return 0;

}

沙里波特
2020-07-30 · TA获得超过5250个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:637万
展开全部
约瑟夫环的问题,老题目了。
早有人得出成功的程序了。
我多年以前,就打过无错的了。
追问
大佬,可以帮我改一下吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式