闲来无聊,拿着这个算法题看了下典型的约瑟夫问题。这里使用最直白的方式来解答这道题:

思路:
1.把所有人先放入数组中,size为n+1
2.当报到m的人,且dead不等于n-1时,此人退出游戏,这时候把数组中这个值置为0,报数从新开始
3.如果这个人报数等于m,并且已经死了n-1个人,说明当前这个人就是最后的一个

public class demo{public static void  main(String arg[]){   int arr[] = new int[101];//报数从1开始所以数组大小为n+1int n=100, m=3;int i;int dead = 0;   //表示已经死了多少人int num = 0;    //num模拟报数for (i = 1;i<= n; i++) {//开始时每个人都可以报数,为了能得到最后一个人的编号,我们让初始值为i下标arr[i] = i;}for (i = 1;; i++){if (i > n) {//如果大于总人数,我们就从头开始i = i%n;                 }if (arr[i] > 0){//如果当前这个人没有死,就报数num++;}if (m == num && dead != n-1){//如果当前这个人报的数等于m 并且没有已经死亡n-1个人num = 0;arr[i] = 0;dead++;} else if(m == num && dead == n-1){//如果这个人报数等于m,并且已经死了n-1个人,说明当前这个人就是最后的一个活着的了。System.out.print(arr[i]+"");break;}}}
}

标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号相关推荐

  1. 求首尾相接的数组的最大子数组和

    思路:将一个数组扩大一倍,这样便实现了数组的首尾相接.在将每个数组成的子数组的和全部求出放进sum数组中,最后求出最大值即可. 源代码: package 首尾相接数组; import java.uti ...

  2. 返回一个首尾相接的二维整数数组中最大子数组的和

    题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...

  3. html图片滚动首尾互联,网页中多个图片首尾相接来回滚动

    网页中多个图片首尾相接来回滚动这个功能用JavaScript来实现的. 下面是页面中的显示代码: border=0 cellspace="0"> vAlign=top> ...

  4. 写了一个图片横向滚动且首尾相接的JS组件

    当年我也是从网上down组件直接拿来用的小白. 记得三年前去XM面试的时候,明哥问我: "如果你需要一个页面特效,你怎么做?" 我呆萌的回答说:"网上down一个哦!&q ...

  5. 向量加减法首尾规律_向量加减口诀首尾相接

    向量的加法口诀:首尾相连,首连尾,方向指向末向量.向量的减法口诀:首首相连,尾连尾,方向指向被减向量. 三角形定则解决向量加减的方法 将各个向量依次首尾顺次相接,结果为第一个向量的起点指向最后一个向量 ...

  6. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

  7. 首尾相接数组求子数组最大和

    一.题目及要求: 返回一个整数数组中最大子数组的和 如果数组A[0]...A[j-1]首尾相邻,允许A[i-1]...A[n-1],A[0]...A[j-1]之和最大:同时返回最大子数组的位置. 二. ...

  8. 自己设计的一个首尾相接js轮播图

    HTML部分: <div class="circle"><img src="images\轮播图1.jpg" alt="" ...

  9. 用标号法求最短路径matlab,标号法求最短路径问题

    dijstra算法 最短路径 运筹学 教学目标: 教案 标题:标号法求最短路径问题 1.通过本节学习,使学生掌握标号法的步骤: 2.通过本节学习,学生能够应用标号法求解配送路径问题 教学重点及难点: ...

  10. 用标号法求最短路径matlab,标号法求最短路径例题详解重点.ppt

    r * 最短路径 带权图G=, 其中w:E?R. ?e?E, w(e)称作e的权. e=(vi,vj), 记w(e)=wij . 若vi,vj不 相邻, 记wij =?. 设L是G中的一条路径, L的 ...

最新文章

  1. 鸿蒙兼容安卓app 为什么还要生态,就因为鸿蒙兼容安卓APP,中兴就宣布弃用?...
  2. android 组件(activity,service,content provider,broadcast receiver,intent)详解
  3. 基于WebSocket协议实现Broker
  4. cocos2d, Box2D
  5. 灵活运用 SQL SERVER FOR XML PATH
  6. 微信/聊天宝/马桶MT/多闪 社交APP一个不落 被约谈!
  7. 【Elasticsearch】es node 节点
  8. linux智能灌溉流程,农田自动灌溉系统及灌溉方法与流程
  9. MicroPython支持SPI驱动外部Flash了
  10. 数值 转换 成 带千位符的数值,且转成大写
  11. Unity zSpace 开发
  12. Python调用海康威视网络相机_调用海康SDK
  13. 陈顼oracle,一次视图合并引起的性能问题
  14. 什么叫冷备用状态_线路和设备冷备用和热备用的状态分别是什么意思?
  15. spring boot项目报错:Validation failed for query for method public abstract...
  16. ROS 下的仿真小乌龟
  17. 全志H616方案香橙派orangepi zero2的26pin接口 SPI测试
  18. iStat Menus mac中文
  19. 知识点梳理IR-808 Biotin,Biotin 808-IR,IR808 生物素,红外吸收染料修饰生物素
  20. Android smack+ejabberd+spack 实现即时通讯(二)客户端连接

热门文章

  1. 【POJ 1228】Grandpa's Estate【稳定凸包】
  2. n 维欧式空间中正交向量组的扩充
  3. 关于表数据同步使用update_time时的注意事项
  4. 操作系统面试常问问题
  5. 网络安全基础——用户与组管理
  6. 版本 tomcat_Tomcat爆出安全漏洞!Spring Cloud/Boot框架多个版本受影响
  7. Centos7 安装MySQL5
  8. python 删除大表数据
  9. activiti 源码笔记之startProcess
  10. Java基础知识强化之集合框架笔记15:List集合的特点