public int getQue(int n,int m){   
        int r = 0;   
        for(int i=2;i<=n;i++)   
            r = (r+m)%i;   
        return r+1;   
    } 
这段代码 可以直接算出 猴子大王的位置 但是 个人理解有限需要牛人帮忙 讲解 大神快来! 虚心求教

解决方案 »

  1.   


    public int getQue(int n,int m){   
      int r = 0;   
      for(int i=2;i<=n;i++)   
      r = (r+m)%i;   
      return r+1;   
      } 
    这是一个方法,带进2个参数,然后循环么?
    每次循环返回一个r接受的int型计算值。
    不晓得LZ是要怎么样的解释?
      

  2.   

    那好吧  有n只猴子,要选出最牛叉的一只猴子,它们很笨选了一个数字m,从第一只猴子开始报数,报到m的那只猴子要出列,然后下一只猴子再从新开始报数,这样一直循环知道剩下最后一只猴子,请问最后选出的那只猴子是第几只?(比如4只猴子报3出列选出的是第1只猴子最牛叉)
    我要的是 代码中为什么i的值是从2开始r的值代表什么 %i又是为什么  为什么 会返回r+1??
      

  3.   

    http://www.cppblog.com/Victordu/archive/2008/02/22/43082.html
      

  4.   

    这是著名的约瑟夫问题,请关注我写的一篇帖子!http://topic.csdn.net/u/20120312/16/cca1183c-c85b-4c49-9020-a04a101838a5.html