Josephus Circle 约瑟夫环

来源:互联网 发布:mac下哪个压缩软件好 编辑:程序博客网 时间:2024/05/08 08:08
import java.util.ArrayList;/** * Josephus circle * @author jimmy * */public class Josephus {//Create Josephus circlepublic Josephus(int number,int start,int distance) {ArrayList<String> list = new ArrayList<String>(number);for(int i=0;i<number;i++)list.add((char)('A'+i)+"");//Attention:don't missing ""System.out.print("Josephus circle("+number+","+start+","+distance+"),");System.out.println(list.toString());int i = start;while(list.size()>1){i = (i+distance-1)%list.size();//the start placeSystem.out.print("remove "+list.remove(i).toString()+",");System.out.println(list.toString());}System.out.println("The last one is "+list.get(0).toString());}public static void main(String[] args) {new Josephus(5,0,2);}}

运行结果:

Josephus circle(5,0,2),[A, B, C, D, E]
remove B,[A, C, D, E]
remove D,[A, C, E]
remove A,[C, E]
remove E,[C]
The last one is C