线性表进阶___约瑟夫环问题

/**
 * 解决约瑟夫环问题:古代某法官要判决n个犯人,荒唐的法律:将犯人站成一个圈,从第S个人开始数起
 * 每数到第D个犯人,就拉出来处决,再从下一个开始数D个,数到的人再处决,直到剩下最后一个犯人予以赦免。
 * 需求:
 * 当n=5,s=0;d=2;
 * 求约瑟夫环问题的处理方式。
 */
package DataStructureTest;

public class Josephus {
	
		public   Josephus(int n,int d,int s)
		{
			
			
			SeqList seqList= new SeqList(n);
			
//			seqList.append("A");
//			seqList.append("B");
//			seqList.append("C");
//			seqList.append("D");
//			seqList.append("E");
			
			for(int i=0;i1)
			{
				i=(i+d-1)%seqList.length();
				System.out.print("删除:"+seqList.remove(i).toString()+",");
				System.out.println(seqList.toString());
			}
			System.out.print("被赦免者是:"+seqList.get(0).toString());
		}
			
		
		public static void main(String[] args)
		{
			new Josephus(5,2,0);
		}
		
}
附上结果图


你可能感兴趣的:(学习日记)