//实现约瑟夫环
public class Josephus {
private static class Node{
public int no;
public Node next; //下一个节点
public Node(int no){
this.no = no;
}
}
public static void main(String[] args){
Scanner scaner = new Scanner(System.in);
System.out.println("请输入人数:");
int totalNum = scaner.nextInt();
System.out.println("请输入报数的大小:");
int cycleNum = scaner.nextInt();
//构成一个圈
Node header = new Node(1);
Node pointer = header;
for(int i = 2 ; i<=totalNum ; i++){
pointer.next = new Node(i);
pointer = pointer.next;
}
pointer.next = header;
//初始化结束条件为就剩一个节点
while(pointer != pointer.next){
for(int i = 1;i < cycleNum ; i++){
pointer = pointer.next;
}
System.out.println(pointer.next.no);
//删除节点
pointer.next = pointer.next.next;
}
//最后一个节点
System.out.println(pointer.next.no);
}
}
JAVA实现约瑟夫环
最新推荐文章于 2022-11-09 19:04:15 发布