#include<stdio.h> void main(){ int n,num[100],*p; int i,k,m; while(scanf("%d",&n)!=EOF){ if(n==0) break; p=num;//p指针指向num for(i=0;i<n;i++) *(p+i)=i+1;//定义每个人是第几人 i=0; k=0;//k为三时这个人退出圈子 m=0;//统计多少人退出圈子,最多为n-1个 while(m<n-1){ if(*(p+i)!=0)//判断这个号是否出局 k++; if(k==3){ *(p+i)=0; k=0; m++;//出局人数计数器+1 } i++; if(i==n) i=0;//指针移到尾部,则返回到头部 } while(*p==0) p++; printf("%d\n",*p); } } |
Double click to view unformatted code.