当前位置: 代码迷 >> Java相关 >> 求助, 一个算法问题。
  详细解决方案

求助, 一个算法问题。

热度:88   发布时间:2010-06-05 02:52:17.0
求助, 一个算法问题。
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-04 18:52:17
liubangchuan
该用户已被删除
  得分:6 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-05 02:10:06
linjx0123

等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
  得分:6 
"就跳到第1位重新开始读,按照这样,直到所有的数全部删光。"这句话有问题,应该是循环读。

如果是循环读,就是约瑟夫环。。。。
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-05 05:35:09
mn83915145
该用户已被删除
  得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-05 05:49:28
linjx0123

等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
  得分:0 
这样写是正确的,不过,效率不高,如果是1,还得循环7次才能删除。所以楼主可以用公式直接算出具体位置,直接删除就行了
----------------解决方案--------------------------------------------------------

         
public class Jose {
    public static void main(String[]args){
        int n=9,k=1,s=5;//你的题目没有说清楚,计数就按从0记起
        //约瑟夫的数学解法
        for(int i=2;i<n;i++){
            s=(s+k)%i;
            if(s==0){
                s=i;
            }
        }
        System.out.println(s);
    }

}

----------------解决方案--------------------------------------------------------
  相关解决方案