#include <iostream>using namespace std;int main(){ int i,j,n,m,k,*p,num[100];k=m=0;  cin>>n;     p=num;     for(i=0;i<n;i++)         *(p+i)=i+1;     i=0;     while(m<n-1)     { if(*(p+i)!=0)           k++;        if(k==3)            {*(p+i)=0;              k=0;              m++;             }        i++;        if(i==n)            i=0;       }     while(*p==0)         p++;     cout<<*p<<endl;return 0;}有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
原文:http://www.cnblogs.com/lxh-boke/p/4543028.html