Java实现约瑟夫环
2013-09-02 13:51
381 查看
什么是约瑟夫环呢?
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
我们用程序说话,实现约瑟夫环:eclipse jdk1.6
努力学习
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
我们用程序说话,实现约瑟夫环:eclipse jdk1.6
package code; import java.awt.PointerInfo; import java.util.Random; import java.util.Scanner; public class Josephus { private static class Node{ public int no; public Node next; public Node(int no){ this.no = no; this.next =null; } } public static void main(String[] args){ /* Scanner input = new Scanner(System.in); System.out.println("taotal nums"); int totalNum = input.nextInt(); System.out.println("size"); int cycleNum = input.nextInt();*/ Random rand = new Random(); int totalNum = rand.nextInt(30); int cycleNum =rand.nextInt(5); if(cycleNum <=1 || cycleNum >= totalNum){ System.out.println("error"); return ; } 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 ; System.out.println(totalNum +" " + cycleNum); System.out.println("order output"); 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递归实现约瑟夫环
- Java循环链表实现约瑟夫环
- 约瑟夫环问题-java实现
- 用java实现约瑟夫环问题
- 循环列表的Java实现,解决约瑟夫环问题
- 约瑟夫环(java面向对象实现)
- java实现约瑟夫环
- 循环列表的Java实现,解决约瑟夫环问题
- java 实现约瑟夫环
- java循环单链表实现约瑟夫环问题
- java实现约瑟夫环 这里使用List,很简单
- 黑马程序员--java实现约瑟夫环问题--java学习日记1(基础知识)
- 用Java实现约瑟夫环
- Java实现约瑟夫环问题
- java实现约瑟夫环
- Java语言解决约瑟夫环问题(链表实现)
- 用Java实现约瑟夫环
- Java循环链表实现约瑟夫环(搬运)
- 小算法:约瑟夫环的Java实现
- 约瑟夫环 java实现