题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

解决方案 »

  1.   

    应该留下两位,就是1号和2号用集合中的stack堆栈很简单的可以实现.
      

  2.   

    约瑟夫环算法public int monkeyKing(int n, int m)  //n个人 ,第m个退出。
            {
                int z=0; //留下第z号
                for (int j = 2; j <= n; j++) z = (z + m) % j;
                return ++z;
            }
      

  3.   

    我觉得用FOR 循环应该不难实现这一功能