Java实现约瑟夫环

什么是约瑟夫环呢?  约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。  我们用程序说话,实现约瑟夫环:eclipse jdk1.6

1 package code; java.awt.PointerInfo; 4 import java.util.Random; 5 import java.util.Scanner; Josephus { Node{ no;10public Node next;Node(int no){13this.no = no;14this.next =null;15 }16 } main(String[] args){Scanner input = new Scanner(System.in);20 System.out.println(“taotal nums”);21 int totalNum = input.nextInt();22 System.out.println(“size”);Random rand = new Random();27int totalNum = rand.nextInt(30);28int cycleNum =rand.nextInt(5);29if(cycleNum <=1 || cycleNum >= totalNum){30System.out.println(“error”);31return ;32 }33Node header = new Node(1);34Node pointer = header;35for(int i = 2 ;i<= totalNum ;i++){36pointer.next = new Node(i);37pointer = pointer.next;38 }39pointer.next = header ;4041System.out.println(totalNum +” ” + cycleNum); 42System.out.println(“order output”);43while(pointer != pointer.next){44for ( int i =1 ;i <cycleNum ;i++){45pointer =pointer.next;46 }47 System.out.println(pointer.next.no);48pointer.next = pointer.next.next;49 }50 System.out.println(pointer.next.no);51 }52 }销售世界上第一号的产品–不是汽车,而是自己。

Java实现约瑟夫环

相关文章:

你感兴趣的文章:

标签云: