约瑟夫生者死者小游戏
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
仅为个人理解
int main()
{
int a=30,r[30],c[15],w=1,h,g=0;
for(int i=0;i<30;i++)
r[i]=i+1;
printf("下船人的编号为:");
while(a>15)
{
for(h=1;h<=30;h++)
{
if(r[h]==0)
continue;
else
w+=1;
if(w%9==0)
{
c[g]=r[h];
r[h]=0;
g++;
a--;
}
}
}
for(int k=0;k<15;k++)
printf("%d ",c[k]);
return 0;
}