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

思路:
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. python2 与 python3的区别整理
  2. Jquery的Split二次分割
  3. 大数据WEB阶段(九)Servlet+Request
  4. hdu2203 KMP水的问题
  5. 十问十答 GPL 许可证
  6. java并发编程实践(2)线程安全性
  7. Docker的学习笔记(开发的技术分享转发)
  8. java更改用户邮箱_git修改user.name 和user.email
  9. 【华为云技术分享】十分钟从入门到精通(下)——OBS权限配置
  10. DPDK内存篇(三): 标准大页、NUMA、DMA、IOMMU、IOVA、内存池
  11. C语言 pthread_join
  12. MySql 存储过程 光标只循环一次
  13. 程序设计导引及在线实践之时区间时间的转换
  14. 2021-06-30 浏览器控制台弹幕脚本
  15. python比对excel表数据中的差异_Python比对EXCEL数据
  16. FPGA与ASIC对比
  17. Fabric 1.0源代码分析(39) policy(背书策略)
  18. Android 类似360 系统启动时间提示
  19. 我为什么既支持又反对接口用Map来传输数据?
  20. 创建学生表,课程表,班级表,班级课程表

热门文章

  1. 基于模拟退火算法解决TSP问题 | MATLAB源码
  2. 计算机网络技术提纲,计算机网络技术复习提纲
  3. mysql loader_Mysql的批量导入类 MySqlBulkLoader
  4. windows批量重命名
  5. 565.数组嵌套(力扣leetcode) 博主可答疑该问题
  6. 343.整数拆分(力扣leetcode) 博主可答疑该问题
  7. php匿名函数自调用,使用自调用函数和匿名函数吃饭
  8. Python dictionary 字典 常用法
  9. 策略模式【设计模式学习-02】
  10. oracle分组取第N条,ROW_NUMBER() OVER的用法