孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网

假设现在有9个孩子,给他们进行编号为0-8,让他们从1开始报数,每当有人报到3的时候就会出局,即n=9,m=3.

在进行第一次报数的时候编号为0的孩子先报,所以编号为2的孩子报的数就是3,因此编号为2的孩子出局,然后编号为3的孩子重新开始报数。

这里我们可以用%来进行扩充,如1可以看做10%9的结果。

通过对比f(9,3)第一次报完数后的结果与f(8,3)之间的关系,我们可以发现f(9,3)=f ( (8,3)+3) )%9,因此我们可以将f(9,3)的结果进行替换。

同理可得f(8,3)= f ( (7,3)+3) )%8

f(7,3) = f ( (6,3)+3) )%7

......

f(2,3) = f ( (1,3)+3) )%2

f(1,3) = 0

因此通过一步步的替换我们就可以找到哪个孩子获得了礼物。

int find(int n,int m)
{if(n==1)return 0;int f=find(n-1,m);return (f+m)%n;
}int LastRemaining_Solution(int n, int m ) {// write code hereif(n==0||m==0)return -1;return find(n,m);
}

约瑟夫环问题(丢手绢问题)相关推荐

  1. 约瑟夫环(丢手绢问题)

    文章目录 问题描述 思路 代码实现 问题描述 有 1~N 个数字,从 1~m 依次报数,数到 m 的数字要被删掉,求最后剩下的数字是? 思路 第一次报数 第二次报数 1 n-m+1 2 n-m+2 - ...

  2. Java数据结构单向循环链表实现约瑟夫问题(丢手绢)

    环形链表 实例:使用环形链表解决约瑟夫问题(丢手绢) 构建一个单向环形链表思路 ​ 1)先创建第一个节点,让first指向该节点,并形成环形 ​ 2)加入环形链表 遍历环形链表 ​ 1)先让一个辅助指 ...

  3. vivo2020校招笔试题[编程题]报数(约瑟夫问题又称丢手绢问题)-java解决

    今年7月份vivo迎来了新入职的大学生,现在需要为每个新同事分配一个工号.人力资源部同事小v设计了一个方法为每个人进行排序并分配最终的工号,具体规则是: 将N(N<10000)个人排成一排,从第 ...

  4. C语言处理约瑟夫问题(丢手绢)

    (部分经验援引自其他人) 问题描述: 在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆 ...

  5. Java中使用链表解决约瑟夫问题(丢手绢问题)

    文章目录 文章目录 前言 一.思路分析 二.代码实现 1.Chird类建立 2.链表创建 3.功能实现 总结 其他解决方式: Java中使用list解决约瑟夫问题https://blog.csdn.n ...

  6. Java中使用list解决约瑟夫问题(丢手绢问题)

    文章目录 文章目录 前言 一.思路分析 二.代码实现 总结 其他解决方式: Java中使用环形链表解决约瑟夫问题https://blog.csdn.net/qq_35813811/article/de ...

  7. 数据结构与算法--我们来玩丢手绢(约瑟夫环问题)

    我们来玩丢手绢 昨天我们打扑克,今天我们丢手绢 丢手绢我们都知道这个游戏,他的由来由约瑟夫 (Josephus)提出来的 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,3 ...

  8. C++约瑟夫环(又称丢手绢)解决---最简单的理解

    首先约瑟夫环的定义: 在一间房间总共有n个人(下标0-n-1),只能有最后一个人活命. 按照如下规则去排除人: 所有人围成一圈, 从0开始 顺时针报数, 每次报到m的人将被排除掉 被排除掉的人将从房间 ...

  9. 约瑟夫环 -- 丢手绢问题

    问题描述 约瑟夫环问题,也称为"丢手绢问题". 编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3-这样依次报),数到 m 的 士兵 ...

  10. 1875 丢手绢 约瑟夫环变形 枚举

    1875 丢手绢 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 六一儿童节到了,小朋友们在玩丢手绢的游戏.总共有C个小朋友,编号从1到C,他们站成一个 ...

最新文章

  1. luogu P3808 【模板】AC自动机(简单版)
  2. 关于Public key for *.rpm is not installed 的解决方法
  3. 面对不可避免的故障,我们造了一个“上帝视角”的控制台
  4. 科大星云诗社动态20210820
  5. GYM101002C - Greetings!
  6. 华为照片在哪个文件夹_原来华为手机还能这样清理垃圾,怪不得你的手机可以多用5年...
  7. Python - 排序( 插入, 冒泡, 快速, 二分 )
  8. java程序中默认包含的是_在编写 Java 程序时,如果不为类的成员变量定义初始值, Java 会给出它们的默认值,下列说法中不正确的一个是( )。...
  9. “Google只认钱!机器学习20年没进步”,CMU学者炮轰AI第一大厂
  10. 用C# Regex类实现的一些常规输入判断
  11. LINUX开机,直接进入终端,如何加载硬盘
  12. Kerberos下pyhive使用
  13. mysql analyze_MySQL数据库执行analyze采集信息
  14. Eclipse LDT 安装
  15. 【转】如何使html5语义化标签兼容ie
  16. 微信小程序在线知识答题有奖多开版源码
  17. 全国高校恋爱关系图谱:北大受宠爱,浙大最孤独
  18. 条形码录入测试软件,条码管理:商品条码录入
  19. PyCharm 字母大小写切换
  20. php开发微信jssdk录音功能,微信 JS-SDK 录音功能开发

热门文章

  1. 终于搞定美团app人气榜提取的数据分类工作
  2. mysql5.7 yum 密码_yum 安装 Mysql 5.7,忘记密码解决方案
  3. 【论文夜读】陈天琦神作Neural Ordinary Differential Equations(NuerIPS2018最佳paper)
  4. typescript egg mysql_Egg.js egg-mysql 连接MySQL 报 AppWorkerDiedError 错误
  5. 程序员狂怒:薪水被应届生倒挂了,很不爽,天王老子也别想留住我!
  6. 盘点世界杯 之 世界杯十大震惊榜
  7. 我英语不好,能学会编程吗?你觉得呢 ?
  8. 英语专业有计算机课程吗,英语专业转行学计算机能学好吗
  9. 卧兔观察:决心有了,就让拼多多飞一会儿吧
  10. WordPress登录注册系统的优化