在java中,有一种简便,可以实现约瑟夫环问题。使用集合类里面的arralylist来实现出来,由于每报到一个数,数到那个数的人就会被踢出去,所以可以使用arralylist的remove方法来实现。
具体代码如下:
public class Test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int num=3;
List<Integer> al=new ArrayList<Integer>();
al.add(4);
al.add(7);
al.add(5);
al.add(9);
al.add(3);
al.add(2);
al.add(6);
al.add(1);
al.add(8);
al.add(0);
fun(al,num);
}
public static void fun(List<Integer> al, int num) {
// TODO 自动生成的方法存根
Iterator iter=al.iterator();
int count=0;
int len=al.size();
for(int i=1;i<=10;i++){
count=(--count+num)%len;//记住删除的位置
len--;//当踢出去一个人后,al的长度就会减少一
System.out.print(al.remove(count)+" ");
}
}
}