代码详解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,猴子选王,约瑟夫环
0
投稿

猜你喜欢

  • Android CountDownTimer实现定时器和倒计时效果

    2023-12-09 02:11:28
  • Android短信验证码(用的Mob短信验证)

    2022-12-16 15:22:41
  • Default Methods实例解析

    2023-05-18 19:28:01
  • 初学C#所需明白的那些点

    2023-11-26 14:40:50
  • Android异步下载图片并且缓存图片到本地DEMO详解

    2022-10-27 14:16:17
  • C++的函数与指针

    2022-12-20 14:08:15
  • 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
  • Androidstudio调用摄像头拍照并保存照片

    2022-01-23 18:33:57
  • Java编写日历表的3种方式

    2023-02-16 00:50:31
  • unity实现UI元素跟随3D物体

    2021-11-15 02:00:48
  • 轻松学习C#的String类

    2021-06-21 02:03:06
  • Android下载进度监听和通知的处理详解

    2022-03-27 08:39:02
  • C#读写指定编码格式的文本文件

    2023-06-16 03:45:41
  • 浅谈@FeignClient中name和value属性的区别

    2023-11-06 13:04:14
  • 判断图片-判断位图是否是黑白图片的方法

    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
  • asp之家 软件编程 m.aspxhome.com