随手打了一个,你的那一个跳不出循环,不知道从哪里改起。
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;
}
约瑟夫环的问题,老题目了。
早有人得出成功的程序了。
我多年以前,就打过无错的了。