//实现约瑟夫环
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 实现约瑟夫环 #### 背景与概念 约瑟夫问题(Josephus problem)是一个经典的计算机科学问题,源自古罗马时期的数学难题。这个问题描述为:一群人在围成一圈,按照一定的顺序报数,每报到某个特定数字的人...
使用JAVA实现约瑟夫环,可以输入任意一组数字
循环链表 实现约瑟夫环 java 自己写的 测试通过 有注释
用Java和Python实现约瑟夫环算法的代码示例.zip 用Java和Python实现约瑟夫环算法的代码示例.zip 用Java和Python实现约瑟夫环算法的代码示例.zip 用Java和Python实现约瑟夫环算法的代码示例.zip 用Java和Python实现...
约瑟夫环是一个数学的应用问题: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,...
约瑟夫环java实现
下面是使用 Java 实现约瑟夫环问题的代码示例: ```java import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { int n = 10; // 总人数 int m = 3...
约瑟夫环问题,也称为约瑟夫环序列或约瑟夫问题,是一个著名的理论问题,源自古罗马历史上的一个故事。...通过Java实现约瑟夫环,不仅能够锻炼编程能力,还能加深对数据结构和算法设计原理的理解。
现在,让我们来看一下 Java 实现约瑟夫环问题的代码。首先,我们需要创建一个名为 `ex2_21` 的 Java 类,用于实现约瑟夫环问题。 ```java package sch.exercise; public class ex2_21 { public static void main...
在这个Java Applet程序中,我们将探讨如何用Java实现约瑟夫环的算法,并通过Applet在网页上进行动态演示。 约瑟夫环问题的基本描述是:人们按照顺时针方向围成一个圈,从某个人开始编号,然后按照一定的间隔去除人...
java用数组实现的约瑟夫环问题。代码简单易懂。
在Java中实现约瑟夫环,通常会用到链表(LinkedList)或者数组(Array)来模拟环形结构。以下是一个基于链表实现的约瑟夫环算法: 1. 首先,我们需要创建一个表示人的节点类(Node),包含两个属性:一个存储该节点...
要实现约瑟夫环,我们可以使用数组、链表或者栈等数据结构。这里可能采用了链表,因为链表在插入和删除操作上的效率更高,与环形结构相匹配。基本的算法思路是创建一个循环链表,然后遍历链表,按设定的计数规则移除...
约瑟夫环问题Java代码实现 约瑟夫环问题是一种经典的算法问题,指的是在一个圆形排列的n个人中,每次从1开始报数,凡是报到m的人出局,问最后出局的人是谁。这个问题可以使用Java语言来实现。 约瑟夫环问题的Java...
这个Java实现有效地运用了链表数据结构来解决约瑟夫环问题,展示了如何用面向对象的方式构造和操作数据结构。通过这种方式,我们不仅可以理解约瑟夫环的算法逻辑,还能学习到Java中链表的创建、遍历和修改等基本操作...
本篇将详细介绍两种通过Java顺序表实现约瑟夫环的方法。 **方法一:通过数组移动** 在这种方法中,我们首先创建一个数组来模拟环状结构,数组的索引代表每个人的编号。每次执行“杀掉”操作时,我们将数组中指定...
在本实验中,我们将深入探讨如何用Java实现约瑟夫环问题的解决方案。 约瑟夫环问题描述如下:假设有一群人围成一个圈,按照顺时针方向依次编号。每次从某个人开始,每隔固定的人数淘汰一人,直到剩下最后一个人为止...