//实现约瑟夫环
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实现约瑟夫环问题Josephus 约瑟夫问题 * 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k(1,2,3...n)的人开始报数,数到m(1,2,3...)的那个人出列; * 他的下一个人又从1开始报数,...
java实现约瑟夫环,java初学者的一个小程序,java实现
使用JAVA实现约瑟夫环,可以输入任意一组数字
循环链表 实现约瑟夫环 java 自己写的 测试通过 有注释
约瑟夫环是一个数学的应用问题: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,...
约瑟夫环java实现
java用数组实现的约瑟夫环问题。代码简单易懂。
通过java顺序表实现约瑟夫环的两种方式: 1.通过数组移动 2.通过记录出对列的人员下标,下次查数时跳过
约瑟夫环问题Java代码实现 详细介绍了约瑟夫环问题 以及java的代码实现
一次是借鉴模仿别人写的代码,以前觉得不好将数据结构的链结构什么的迁移到java上来使用,但这一次确实让我感受到了可以自己构造数据结构,然后使用类似链的方式来解决约瑟夫环,有所顿悟。不多说,继续上代码
主要介绍了Java简单实现约瑟夫环算法,简单描述了约瑟夫环问题,并结合实例形式分析了Java实现约瑟夫环的具体操作技巧,需要的朋友可以参考下
Java约瑟夫环演示Applet源码,程序组成: MainApplet类:主要实现了界面的显示 MainSrc类:主要实现了界面图形变化的控制 ParaDialog类:实现了测试参数的输入
这是一个java的约瑟夫问题代码,实现约瑟夫问题(循环链表)!
通过简单的程序解决约瑟夫环问题 c++文件
java实现的约瑟夫环问题。手动输入N个犯人,查D个数字出环,起始查数为S。
用java来实现约瑟夫环,其中的一些算法和思想都是比较经典的,可以仔细品味一下
约瑟夫环演示程序,实现了界面,图形变化,参数等问题。很好的源代码。
用循环队列解决约瑟夫环问题减少用顺序表在出对是循环移动带来的空间复杂度
约瑟夫环,用循环链表实现,语言为Java。假设数到三的数出列。程序输出1到10的出列顺序。