这是公司笔试经常会遇到的题目
int flag[n]={0}; //n为最初围成一圈的人数
int i=0,j=0,k=0,end=0;
while(end == 0)
{
j=j%n;
if(flag[j++] == 0)
i++;
if((i%3)==0) //判断是否报到3,若是,将对应的元素标记为1,象征退出
flag[j-1]=1;
end = 1; //判断是否还有满足条件的,若数组全部元素为1,则退出循环
for(k=0;k<n;k++)
{
if(flag[k]==0)
end = 0;
}
}
printf("the last one is %d\n",j); //最后一个退出的就是最后留下的