当前位置: 网站首页 > JAVA > j2se

约瑟夫(Josephus)问题的实现

时间:1970-1-1 08:33:31来源: j2se作者:admin 点击:4次 字体 [ С]

    kill =kill %join.size();
   
   next = (String)join.get(kill );//记录下一次循环的位置
   list[Integer.parseInt(t)]=0; //go out!
   count++;//计数+1
  }while(count!=total);//如果到达总数跳出循环,最后一个被记录的人则是最后一个人。
  System.out.println(Integer.parseInt(next)+1);
  
  
 }
 static ArrayList getList(int[] list){
  ArrayList join = new ArrayList();
  int y=0;
  for(int x=0;x<list.length;x++){
   if(list[x]!=0){ 
    join.add(String.valueOf(x));
    y++;
   }
  }
  return join;
 }
 static int[] setCollect(int[] list){
  int y=1;
  for(int x=0;x<list.length;x++){
   list[x]=y;
  }
  return list;
 }
 
 
}
 

本来啊试着不大算用ArrayList。但最后因为我不知道生成动态数组的方法,而放弃了new int[].失落啊。

不管怎样反正是实现了。下面转换成c++就可以了。

额顺便一说,我没有找网上的其他实现方法,或许会有更简单的实现。但我还是觉得我自己想到的比较OK一些。毕竟是自己的玩意。


发表评论
验证码:
最新评论
相关文章
最热文章