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

2024-11-30 00:37:19
推荐回答(2个)
回答1:

错误标注

修改版本

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

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;

}

回答2:

约瑟夫环的问题,老题目了。
早有人得出成功的程序了。
我多年以前,就打过无错的了。