代码详解Java猴子选王问题(约瑟夫环)
作者:彬菌 时间:2023-09-16 07:33:43
关于约瑟夫环的基本知识:
罗马人攻占了乔塔帕特,41人藏在一个山洞中躲过了这场浩劫。这41个人中,包括历史学家josephus和他的一个朋友。剩余的39个人为了表示不向罗马人屈服,决定 * 。大家决定了一个 * 方案,所有这41人围城一个圆圈,由第一个人开始顺时针报数,没报数为3的人就立刻 * ,然后由下一个人重新开始报数仍然是每报数为3的人就立刻 * ,......,知道所有人都 * 死亡为止.约瑟夫和他的朋友并不想 * ,于是约瑟夫想到了一个计策,他们两个同样参数到 * 方案中,但是最后却躲过了 * 。请问是怎么做到的
代码分享:
import java.util.HashMap;
import java.util.Map;
public class MonkeyKing {
public static void main(String args[]) {
int n = 100; // 猴子总数
int m = 3; // 报数出局数
@SuppressWarnings("rawtypes")
Map map = new HashMap();
int nn = 1; // 报数序号
int mm = 1; // 报数号
System.out.println("-----------------------" + n + "只猴子选大王开始-----------------------");
for (int i = 1; i < n + 1; i++) {
map.put(i, i);
}
while (map.size() > 1) {
if (mm == 3) {
map.remove(nn);
}
nn++;
if (nn == n + 1) {
nn = 1;
}
if (map.get(nn) != null) {
mm++;
}
if (mm == m + 1) {
mm = 1;
}
}
String result = map.values().toString();
System.out.println("第" + result.substring(1, result.length() - 1) + "只猴子当选猴王");
}
}
来源:https://www.idaobin.com/archives/364.html
标签:Java,猴子选王,约瑟夫环
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android CountDownTimer实现定时器和倒计时效果
2023-12-09 02:11:28
Android短信验证码(用的Mob短信验证)
2022-12-16 15:22:41
![](https://img.aspxhome.com/file/2023/9/122219_0s.png)
Default Methods实例解析
2023-05-18 19:28:01
初学C#所需明白的那些点
2023-11-26 14:40:50
Android异步下载图片并且缓存图片到本地DEMO详解
2022-10-27 14:16:17
![](https://img.aspxhome.com/file/2023/5/90165_0s.png)
C++的函数与指针
2022-12-20 14:08:15
![](https://img.aspxhome.com/file/2023/7/125907_0s.png)
C#实现快捷键的几种常用方法汇总
2021-08-23 15:01:54
Java HtmlParse提取标签中的值操作
2021-10-07 04:43:10
Java实现的傅里叶变化算法示例
2021-12-08 18:04:24
Spring的事务管理你了解吗
2023-02-05 19:44:16
![](https://img.aspxhome.com/file/2023/4/88204_0s.png)
Androidstudio调用摄像头拍照并保存照片
2022-01-23 18:33:57
![](https://img.aspxhome.com/file/2023/0/137590_0s.jpg)
Java编写日历表的3种方式
2023-02-16 00:50:31
![](https://img.aspxhome.com/file/2023/8/70978_0s.jpg)
unity实现UI元素跟随3D物体
2021-11-15 02:00:48
![](https://img.aspxhome.com/file/2023/4/98184_0s.gif)
轻松学习C#的String类
2021-06-21 02:03:06
![](https://img.aspxhome.com/file/2023/6/122696_0s.png)
Android下载进度监听和通知的处理详解
2022-03-27 08:39:02
C#读写指定编码格式的文本文件
2023-06-16 03:45:41
浅谈@FeignClient中name和value属性的区别
2023-11-06 13:04:14
![](https://img.aspxhome.com/file/2023/0/78270_0s.png)
判断图片-判断位图是否是黑白图片的方法
2023-06-09 17:20:07
android横竖屏切换时候Activity的生命周期
2021-12-10 16:02:36
Java异常--常见方法--自定义异常--增强try(try-with-resources)详解
2021-10-31 07:17:42