import java.util.Scanner;
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 scanner = new Scanner(System.in);
System.out.print("请输入总人数:");
int totalNum = scanner.nextInt();
System.out.print("请输入报数的大小:");
int cycleNum = scanner.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;
// 初始化环形链表结束
System.out.println("以下是出列的顺序:");
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);
}
}
分享到:
相关推荐
问题描述:约瑟夫环问题的一种描述是:编号为1,2,...,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时...
分别用一维数组,结构体数组,循环链表实现约瑟夫环问题,功能完备,代码添加注释,经典易懂
约瑟夫环有很多种问法,这里举例了其中一种,不过都大同小异 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围, 每个人都有自己的一个密码。 从第一个人开始报数,数到m(初始设定)的那个人出列; 他的下...
通过java顺序表实现约瑟夫环的两种方式: 1.通过数组移动 2.通过记录出对列的人员下标,下次查数时跳过
约瑟夫问题的一种描述是:编号为1,2,……,n的n个人按顺序围一圈,每人持有一个密码。开始有一个初始密码m。人们按顺序报数,报到m的人出列,然后取出列人的密码替换m,重新报数,以此类推,直到最后一个人出列,求...
约瑟夫环(Joseph)问题的描述一种是:编号为1,2,3……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报...
约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止...
约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,没人持有一个密码(正整数)。...数据结构c语言版1.2约瑟夫环实验报告,有手动输入和随机生成两种,拓展部分用了数组来实现。
设计一个程序求出约瑟夫环问题的出列顺序,掌握线性表的基本操作在两种存储结构上的实现。
约瑟夫环问题的一种描述是:编号为 1,2,…,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值 m,从第一个人开始按顺时针方向自 1 开始顺序报数,报到 m 时停止...
一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部...
约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n。的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任忿一个正整教作为报教上限值m,从第一个人开始按服时针方向自1开始顺序报数,报到m时停止...
约瑟夫环(Joseph)问题的一种描述是:编号为1,2……,n的n个人 按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一 个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺 序报数,报到m时...
循环单链表是单链表的另一种形式,其结构特点链表中最后一个结点的指针域不再是结束标记,而是指向整个链表的第一个结点,从而使链表形成一个环。和单链表相同,循环链表也有带头结点结构和不带头结点结构两种,带头...
约瑟夫问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人...
这个题我是用数组下标置0方法做的,类似单链表的性质,这个方法是模拟了游戏过程,是比较笨的代码,喜欢研究的朋友可以用相关算法来实现。时间复杂度为O(n^2),代码注释很详细,基本每一行我都写了注释,稍微有点...
约瑟夫问题的一种描述是:编号为 1,2,...,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值 m,从第一个人开始。按顺时针方向自 1 开始顺序报数,报到 m 时停止报数...
数据结构中的一道例题——约瑟夫环的一种代码,相信很多人都做过这道题,交流一下。
约瑟夫环用c++来实现
问题表述: 约瑟夫问题的一种描述是... (3) 程序所能实现的功能是实现一个约瑟夫环的功能,将n个人按照某种顺序全部出列为止。 (4) 测试数据:n=7,7个人的密码依次是3,1,7,2,4,8,4首先m的值为6