用Java实现约瑟夫环
2013-09-14 12:40
288 查看
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列.
import java.util.Scanner; public class Test { /** * @param args */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = scanner.nextInt(); int m = scanner.nextInt(); // 初始化 Node head = new Node(1, null); Node temp = new Node(); for (int i = 2; i <= n; i++) { Node node = new Node(i, null); if (i == n) { node.node = head; temp.node = node; temp = temp.node; } else { if (head.node == null) { head.node = node; temp = node; } else { temp.node = node; temp = temp.node; } } } temp = head; for (int i = 1; i < k; i++) { temp = temp.node; } while (temp!=temp.node) { for(int i = 1 ; i < m-1; i++){ temp = temp.node; } System.out.println(temp.node.n); temp.node = temp.node.node; } System.out.println(temp.n); scanner.close(); } } class Node { int n; Node node; Node() { } public Node(int n, Node node) { this.n = n; this.node = node; } }
相关文章推荐
- java实现约瑟夫环
- Java语言解决约瑟夫环问题(链表实现)
- 约瑟夫环Java实现
- 用Java实现约瑟夫环
- Java循环链表实现约瑟夫环(搬运)
- 约瑟夫环 java实现
- 第三次作业约瑟夫环(JAVA实现)NO.1
- [原创]java实现约瑟夫环问题
- 约瑟夫环的java实现
- java实现约瑟夫环
- 【约瑟夫环】Java实现:100个人开始从1开始报数,每当报数到3,报数3的人离开,求最后留下来人的位置。
- 约瑟夫环 java循环链表实现
- Java循环链表实现约瑟夫环
- 用java实现 数三退出游戏(2)约瑟夫环
- 约瑟夫环(丢手帕游戏)Java 链表实现(程序正确无误)
- Java实现约瑟夫环:50个人围成一圈数数,数到3的人退出,求最后剩下的人的编号
- Java单链表实现多项式相加、多种方式实现约瑟夫环
- java 实现约瑟夫环的实例代码
- 约瑟夫环的java实现
- JAVA实现约瑟夫环