C语言编程解决约瑟夫问题

2025-03-06 11:31:54
推荐回答(1个)
回答1:

//约瑟夫环出列顺序
#include
int a[] = {0, 2, 3, 4, 5, 6, 7, 8, 1};
int king(int monkey[], int n, int key) {
int q, p, t;
q = n;
t = 0;
do{
p = a[q];
t = t+1;
if ((t % key) != 0 )
q = p;
else {
a[q] = a[p];
printf("%d ",p);
}
} while(p != a[q]);
return p;
}
int main( )
{
int m,n;
printf("几个猴子谁出列\n");
scanf("%d%d",&m,&n);
king(a,m,n);
printf("<--出列\nThe king is %dth\n", king(a,m,n));
return 0;
}

这是一个解决出列顺序和大王是谁的 不知对你有没有帮助