unsigned int A[N],B[N];//定义数组 unsinged int MyFunc(unsigned int M,unsigned int N);
main() { unsinged int i,k; for(i=0;i<N;i++) A=i+1; k=MyFunc(N,M);//调用 }
unsinged int MyFunc(unsigned int M,unsigned int N) { unsigned int q; if(N=1) return(A[0]);//返回值就是人的号数 for(i=0;i<N-1;i++) B=A[((M-1)%N+1+i)%N];//重数把第M+1个人放在首列 for(i=0;i<N-1;i++) A=B;//重新把数据写回,注意此时人数只有N-1个了 q=MyFunc(N-1,M); return(q); }