约瑟夫问题
来源:互联网 发布:大数据时代的阅读答案 编辑:程序博客网 时间:2024/06/11 08:11
问题重述:9个小孩围坐在一圈,开始报数,数到三的退出,求最后赢的孩子?
解决方法:链表的定义;链表节点元素的删除等
package com.homework37;public class Demo37 {public static void main(String[] args) {// TODO Auto-generated method stubNode n = new Node();n.createLink(9);n.show();n.startGame();n.show2();}}class Node{int number;Node next;Node head;Node curr;int lens;public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public Node getNext() {return next;}public void setNext(Node next) {this.next = next;}public void createLink(int lens) {this.lens = lens;for (int i = 1; i <= lens; i++) {if (i == 1) {Node n = new Node();head = n;curr = n;curr.next = null;n.setNumber(i);} else if (i == lens) {Node n = new Node();n.setNumber(i);curr.next = n;curr = n;curr.next = head;} else {Node n = new Node();n.setNumber(i);curr.next = n;curr = n;}}}public void show() {curr = head;while (true) {System.out.println(curr.number + " ");if (curr.next == head) {break;}curr = curr.next;}}public void startGame() {curr = head;Node exit;while (true) {for (int i = 1; i <= 2; i++) {if (i == 2) {exit = curr.next;curr.next = curr.next.next;}curr = curr.next;}if(curr.next.next==curr){break;}}}public void show2() {curr = head;while (true) {System.out.print(curr.number + " ");if (curr.next == head) {break;}curr = curr.next;}}}
0 0
- 约瑟夫问题、约瑟夫环
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- sqlite3_column_blob()自己理解
- VBS深入CreateObject函数
- proc(1)
- windows的php环境下使用sendmai的smtp功能l的简单配置
- C语言数组作为函数参数
- 约瑟夫问题
- Hibernate延迟加载详解
- Ubuntu可以随便升级内核了
- JS原型与原型链终极详解
- 【数据结构与算法】统治世界的十大算法
- hdu 3625 Examining the Rooms(斯特林数)
- less基础入门一
- LeetCode------58. Length of Last Word(字符串中最后一个单词的长度)
- 文件共享神器:NitroShare