static void Main( )
   {     const int MaxSize = 50;  //假设猴子最多为50只;
         int m,n,d,i,count;  //n代表猴子数目,m代表报到m号的淘汰;
            int [] A=new int[MaxSize]; Console.Write("输入猴子个数n:");
            n=int.Parse ( Console.ReadLine());
            Console.Write("输入要淘汰的报号m:");
            m = int.Parse(Console.ReadLine());
            for (i=0;i<n;i++)  A[i]=i+1; //给猴子们编号
            Console.WriteLine ("出队前:");
            for (i=0;i<n;i++) 
              Console.Write(A[i]+" ");
            Console.WriteLine(); Console.WriteLine("出队后:");
            count = 0; 
           d = 0;  /*d记录退出圈外的猴子个数*/
            while (n > 0)
                for (i = 0; i < n; i++)
                    if (A[i] != 0)
                    {
                        count++;
                        if (count == m)
                        {
                            Console.Write(A[i] + " ");
                            A[i] = 0; /*元素值清0*/
                            count = 0;   /*计数器重置0*/
                            d++;
                            n--;
                        }
                    } 
   }