全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java简单实现约瑟夫环算法示例

本文实例讲述了Java简单实现约瑟夫环算法。分享给大家供大家参考,具体如下:

1.算法背景:

罗马人攻占了乔塔帕特,41人藏在一个山洞中躲过了这场浩劫。这41个人中,包括历史学家josephus和他的一个朋友。剩余的39个人为了表示不向罗马人屈服,决定集体自杀。大家决定了一个自杀方案,所有这41人围城一个圆圈,由第一个人开始顺时针报数,没报数为3的人就立刻自杀,然后由下一个人重新开始报数

仍然是每报数为3的人就立刻自杀,......,知道所有人都自杀死亡为止.

约瑟夫和他的朋友并不想自杀,于是约瑟夫想到了一个计策,他们两个同样参数到自杀方案中,但是最后却躲过了自杀。请问是怎么做到的

2.下面直接代码进行实现:

public class YueSeFuHuan {
  static final int nums = 41;// 总共多少人
  static final int killMan = 3;// 数到3则被杀
  public static void main(String[] args) {
    jufehus(2);
  }
  public static void jufehus(int alive) {
    int[] man = new int[nums];// 未被杀的都被标记为0
    int pos = -1;// 数组角标
    int i = 0;
    int count = 1;// 杀到第几个记录值
    while (count <= nums) {
      do {
        pos = (pos + 1) % nums;// 循环标记
        if (man[pos] == 0)
          i++;
        if (i == killMan) {
          i = 0; // 重置
          break;// 找到了被杀的位置,跳出循环,进行标记
        }
      } while (true);
      man[pos] = count;
      count++;
    }
    System.out.println("测试结果:");
    // 显示不被杀的位置
    alive = count - alive;
    for (int j = 0; j < man.length; j++) {
      if (man[j] >= alive)
        System.out.println("不被杀的位置是->" + (j + 1));
    }
  }
}

打印出结果是:

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


# Java  # 约瑟夫环  # 算法  # java基于双向环形链表解决丢手帕问题的方法示例  # Java用单向环形链表来解决约瑟夫环Josepfu问题  # Java数据结构与算法之双向链表、环形链表及约瑟夫问题深入理解  # Java 数据结构与算法系列精讲之环形链表  # java 实现约瑟夫环的实例代码  # Java解决约瑟夫问题代码实例  # java使用链表实现约瑟夫环  # Java数据结构之环形链表和约瑟夫问题详解  # 约瑟夫  # 被杀  # 人就  # 数为  # 操作技巧  # 罗马人  # 几个  # 相关内容  # 是怎么  # 感兴趣  # 这场  # 数据结构  # 给大家  # 仍然是  # 占了  # 藏在  # 更多关于  # 多少人  # 所述  # 不向 


相关文章: 深圳网站制作培训,深圳哪些招聘网站比较好?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  高端建站三要素:定制模板、企业官网与响应式设计优化  网站制作大概多少钱一个,做一个平台网站大概多少钱?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  寿县云建站:智能SEO优化与多行业模板快速上线指南  如何通过云梦建站系统实现SEO快速优化?    如何快速完成中国万网建站详细流程?  h5在线制作网站电脑版下载,h5网页制作软件?  如何在万网开始建站?分步指南解析  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  c# 在高并发下使用反射发射(Reflection.Emit)的性能  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  已有域名和空间,如何快速搭建网站?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  济南企业网站制作公司,济南社保单位网上缴费步骤?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何在万网ECS上快速搭建专属网站?  制作网站的公司有哪些,做一个公司网站要多少钱?  C++中引用和指针有什么区别?(代码说明)  如何快速搭建高效WAP手机网站吸引移动用户?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  如何在搬瓦工VPS快速搭建网站?  潮流网站制作头像软件下载,适合母子的网名有哪些?  建站之星上传入口如何快速找到?  如何在云虚拟主机上快速搭建个人网站?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  威客平台建站流程解析:高效搭建教程与设计优化方案  安徽网站建设与外贸建站服务专业定制方案  中山网站制作网页,中山新生登记系统登记流程?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  音响网站制作视频教程,隆霸音响官方网站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  小型网站建站如何选择虚拟主机?  如何在阿里云ECS服务器部署织梦CMS网站?  建站主机选虚拟主机还是云服务器更好?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何通过服务器快速搭建网站?完整步骤解析  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何通过FTP服务器快速搭建网站?  建站上市公司网站建设方案与SEO优化服务定制指南  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何快速搭建FTP站点实现文件共享?  建站之星北京办公室:智能建站系统与小程序生成方案解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。