约瑟夫环算法(JAVA)
约瑟夫环算法(JAVA)
简介:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
以下是程序(主要部分)---------------------------------------------------------
import java.util.Scanner;
public class Jose {
// 初始化
static final int Num = 41;
static final int KillMan = 3;
public static void Josephus(int alive) {int man[] = new int[Num];int count = 1;int pos = -1, i = 0;while (count <= Num) {do {pos = (pos + 1) % Num;if (man[pos] == 0) // 没自杀的人标记为0i++; // 没自杀的人才计数if (i == KillMan) {i = 0;break;}} while (true);man[pos] = count; // 自杀之后标记为约瑟夫编号System.out.printf("第%d个人自杀,其约瑟夫编号为%d", pos + 1, count);System.out.println();count++;}}public static void main(String[] args) {int alive;System.out.println("输入存活人数:");Scanner input = new Scanner(System.in);alive = input.nextInt();Josephus(alive);
}
}
收获:---------------------------------------------------------------
1、 输入Scanner input=new Scanner(System.in);
该语句运行需要和system搭配;调出输入窗口;
2、 循环的层次需要分清楚
3.、 自杀的人没必要重新建立新的数组,只需要给出标记即可
自杀前不赋值,默认为0
自杀后赋值为约瑟夫编号;
且自杀后的数字不再进入新的循环;
整个程序耗时长,皆是因为不熟悉的缘故,而且思维需要锻炼;
约瑟夫环算法(JAVA)相关推荐
- java实现约瑟夫环完整算法_Java简单实现约瑟夫环算法示例
Java简单实现约瑟夫环算法示例 发布时间:2020-10-01 14:19:56 来源:脚本之家 阅读:104 作者:perfect亮 本文实例讲述了Java简单实现约瑟夫环算法.分享给大家供大家参 ...
- 约瑟夫环 java代码_约瑟夫环算法的Java实现代码
相信大家都知道这是一个的算法问题,约瑟夫环的c语言实现是利用了指针链表的形式,java实现呢,我的这个是用了内部类. 算法描述:n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针 ...
- 【约瑟夫环】Java实现:100个人开始从1开始报数,每当报数到3,报数3的人离开,求最后留下来人的位置。
[约瑟夫环]Java实现:100个人开始从1开始报数,每当报数到3,报数3的人离开,求最后留下来人的位置. 原创 2017年03月15日 00:21:36 标签: 约瑟夫环问题 1023 问题背景:约 ...
- C语言幸运星课程设计,涉及约瑟夫环算法,多个版本
C语言幸运星课程设计,涉及约瑟夫环算法,多个版本,放于多个分支. 使用及转载请标明出处(最好点个赞及star哈哈) 版本1使用链表,函数传参 版本2使用链表,空参函数,全局变量 版本3使用动态数组 码 ...
- 约瑟夫环算法问题(C++)
约瑟夫环算法问题 什么是约瑟夫环 约瑟夫环算法题 什么是约瑟夫环 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围.从编号为 k 的人开始报 ...
- 一文读懂约瑟夫环算法
2020-05-25 20:13:40 作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的 ...
- 一文读懂约瑟夫环算法 | 原力计划
作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,类似问题又称为约瑟夫环.又称&q ...
- python约瑟夫环算法和流程图_约瑟夫环问题及python与c++实现效率对比
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重 ...
- 约瑟夫环问题--java
有编号从1到N的N个人坐成一圈报数,报到M的人出局,下一位再从1开始, 如此持续,直止剩下一位为止,报告此人的编号X.输入N,M,求出X. 那么问题就是,对于n个人,最后剩下的是谁呢? 对于5个人的 ...
最新文章
- 气温上升影响数据中心节能
- 多路径配置udev_ASM磁盘多路径及udev配置
- 超专业解析!10分钟带你搞懂Linux中直接I/O原理
- 在Eclipse中配置Tomcat服务
- 安全篇之手机数字密码九宫格究竟哪个更安全?
- BZOJ 1624 Usaco Clear And Present Danger
- NumPy学习_00 ndarray的创建
- python3环境运行python2代码_使用Anaconda实现Python2和Python3共存及相互转换
- 【分布式】一致性协议
- iviewtable表格数据 录音播放下载
- C ++ 指针 | 指针的操作_2
- 网络I/O模型--04非阻塞模式(解除accept()、 read()方法阻塞)的基础上加入多线程技术...
- Spring-core-Environment/profiles
- 【代码片段分享】获取公历日期阴历日期二十四节气干支纪年传统节日Java版
- 第7章第25节:双图排版:两张图片横竖交错叠加排版 [PowerPoint精美幻灯片实战教程]
- linux自定义自动补全命令
- 设计模式(一):观察者模式与责任链模式的对比
- Java面试快问快答-Instrument机制
- 最网最全python框架--scrapy(体系学习,爬取全站校花图片),学完显著提高爬虫能力(附源代码),突破各种反爬
- can协议crc计算_CAN协议中CRC编码的硬件实现