
关于约瑟夫环的问题(c++),输出?
有n个小朋友围成一个圈,编号1~N。现在从1号小朋友开始顺时针报数(第一个报1,依次报数),当报到m时,将报数者删除。并从下一个小朋友开始重新报数。问,最后一个留下的小朋...
有n个小朋友围成一个圈,编号1~N。现在从1号小朋友开始顺时针报数(第一个报1,依次报数),当报到m时,将报数者删除。并从下一个小朋友开始重新报数。问,最后一个留下的小朋友编号是谁?第一张是我自己打的,有错啊
展开
展开全部
错误标注
修改版本
随手打了一个,你的那一个跳不出循环,不知道从哪里改起。
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;
}

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询