约瑟夫环(递归+迭代)

剑指 Offer 62. 圆圈中最后剩下的数字

leetcode

这题让我对递归和迭代又有了新的一层认识,首先一定要把图画对,就是模拟约瑟夫的这个过程
红色是被淘汰的位置,绿色的3是最后会活下来的人的位置
0 ~ n 正好是数组中的下标
重点在于计算 不同n时 幸存位置的下标,这里n = 5 去模拟淘汰的过程,2被淘汰,3就变成新的0号位置,循环下去模拟直到最后活下来的只有一个人就是3
n是固定的 那活下来的人也是固定的
本质就是我知道 n -1 = 4 时 队列情况是 3 4 0 1 时 3 的位置是0
(0 + 3)% 5 就可以得出 n = 5时 存活位置的下标 = 3
循环和递归就是 起点不同,分别是是开头(最下面)和结尾(最上面)

在这里插入图片描述

递归是从上往下,要知道当前f(n,m)的值, 需要知道 f(n-1,m)的值
那就出来了,求n 按照这个规律递归去求n-1
结束条件就是 n == 1 就是 0位置幸存

 int lastRemaining(int n, int m) {//递归  从上往下if(n == 1)return 0;return (lastRemaining(n-1,m)+m)%(n);}

循环是从下往上,只有一个人幸存位置就是0,那么从2个人开始,也就是n =2
这个好像更简单高效,毕竟循环不会栈溢出
根据画图和规律就是 : pos = (pos + m) % i; // %取余控制pos不会越界而是在范围里走
在这里插入图片描述

int lastRemaining(int n, int m) {//递归  从上往下// if(n == 1)//     return 0;// return (lastRemaining(n-1,m)+m)%(n);//非递归 从下往上int pos = 0;for(int i = 2; i <= n; i++){pos = (pos + m) % i; // %取余控制pos不会越界而是在范围里走}return pos;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353388.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

自制wpf年会抽奖小软件

今年公司年会&#xff0c;领导要我做一个小的抽奖软件&#xff0c;给了一组号码&#xff0c;要求每次抽奖抽的众多号码中的一个随机数&#xff0c;并且抽奖之后该号码不会参与下次抽奖。 前端代码&#xff1a; <Window x:Class"WpfApp1.MainWindow"xmlns"h…

年会抽奖项目免费分享即开即用

最近好多公司都在搞年会&#xff0c;年会肯定离不开抽奖环节&#xff0c;而抽奖就有可能会存在内幕哦。 今天给大家分享一款免费的抽奖软件&#xff0c;公平公正无套路无黑幕&#xff0c;快推荐给你身边的小伙伴吧。 一、抽奖配置 默认只有一等奖&#xff0c;可增加二等奖三…

抽奖活动软件 html,APP怎么制作抽奖活动,制作APP抽奖活动有何亮点

来源|活动盒子-APP活动运营工具(huodonghezi.com) 谈到APP抽奖活动运营&#xff0c;我们就不得不说起APP运营抽奖的老司机们&#xff0c;通过自己的调查&#xff0c;思考&#xff0c;策划&#xff0c;制作&#xff0c;最终呈现出一个优秀的APP抽奖活动。当然抽奖活动的APP运营分…

抽奖活动软件 html,webAPP最常用的活动促销案例:大转盘H5抽奖特效

今天25学堂跟大家分享一个移动H5开发当中,最常用的一个H5效果。那就是幸运大转盘抽奖特效。 当然,网上有很多类似的大转盘H5抽奖源码的分享和设计效果图展示。 25学堂分享的目的是告诉大家如何去修改先有的H5特效源码为我们的H5项目所用。 H5项目的名称是:幸运大转盘抽奖 使…

python抽奖程序_抽奖程序python

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 大家好,我开始学python,想做一个抽奖程序,源代码如下,如果我要在框架内加上1等奖1个人 ,2等奖2个人,三等奖3个人 应该怎么样编写相关联的代码,就是点击1等…

简易抽奖软件逻辑实现

又到年终了&#xff0c;各种抽奖软件需求纷至沓来&#xff0c;现分享一个简易抽奖软件逻辑&#xff0c;希望对大家抽奖类的需求有所帮助&#xff1b; 直奔主题吧&#xff0c;测试程序很稳定&#xff0c;可以直接将界面修改为其他形式 1、奖池枚举类 public enum AwardGrade{Sp…

518抽奖软件——极简设计、极致体验

518抽奖软件——极简设计、极致体验 名称&#xff1a;518抽奖软件 版本&#xff1a;3.1 大小&#xff1a;14520KB 语言&#xff1a;简体中文 授权&#xff1a;试用版 插件&#xff1a;无 分类&#xff1a;应用-办公工具 图标&#xff1a;http://www.518cj.net/images/80.png 截…

随机抽奖软件

点击 &#xff1a;源码及软件下载 开发语言&#xff1a;C# 使用&#xff1a;winForm 、Timer类 主界面&#xff1a;(可全屏) 可配置项&#xff1a; 1、是否移除中奖者 2、是否全屏 3、替换背景图片 4、字大小&#xff08;数字越大字越大&#xff09; 5、字颜色&#xff0c;默认…

J辉摇号摇奖抽奖软件

功能&#xff1a; 可选择重复/不重复中奖&#xff1b; 支持从TXT或Exlce中导入抽奖人员&#xff1b; 支持中奖名单显示 、保存&#xff1b; 支持抽取结果页面或字幕显示&#xff1b; 做个简单的使用说明。默认是读取根目录的name.json文件的数据的。 创建自己的数据点击左…

【抽奖软件】C++,duilib实现完整抽奖软件系统(有源码)

最近帮朋友做了一个晚会抽奖软件系统&#xff0c;在这里和大家分享一下&#xff0c;有需要的可以参考&#xff0c;时间紧&#xff0c;本人水平有限&#xff0c;有些地方处理的还不是太理想&#xff0c;欢迎大家指出来。 1&#xff0c;设计思路 朋友单位要举办个晚会&#xff…

滚动照片抽奖软件

CODE GitHub 源码 1、女友说很丑的一个软件 说个最近的事情&#xff0c;女友公司过年了要搞活动&#xff0c;需要个抽奖的环节&#xff0c;当时就问我能不能给做一个&#xff0c;正好我也没啥事儿&#xff0c;就在周末的时候用C#做了一个&#xff0c;虽然派上用场了&#xf…

商场抽奖软件 android,召唤抽奖系统3.0正式版

召唤抽奖系统3.0正式版是一款全新打造的二次元题材的剧情玩法的手机游戏。玩家们在游戏中可以通过探索剧情&#xff0c;来收集很多的人物角色&#xff0c;同时也可以通过召唤来获得更加强大的技能人物。3D技术打造的游戏场景设计风格&#xff0c;让玩家们可以感受到更加真实的游…

商场抽奖软件 android,召唤抽奖系统

召唤抽奖系统是一款角色扮演类手游&#xff0c;召唤抽奖系统游戏背景设定在神武大陆&#xff0c;游戏中玩家从现代社会穿越到一个婴儿身上&#xff0c;16年后玩家要踏下旅程&#xff0c;学习魔法和武道&#xff0c;你可以通过主线&#xff0c;支线&#xff0c;以及召唤线来推进…

星韵转盘抽奖软件

星韵转盘抽奖软件是一款功能强大&#xff0c;且适用于单位年会、晚会、婚庆、商场、房地产、楼盘、超市、娱乐会所等多种抽奖摇号场合的轮盘抽奖软件&#xff0c;该软件以新颖独特的抽奖方式&#xff0c;完美的取代了传统大转盘的抽奖方式&#xff0c;还拥有强大的转盘模板编辑…

星韵商场抽奖软件

星韵商场抽奖软件是一款非常专业&#xff0c;且适用于各种商业促销活动的抽奖软件&#xff0c;不但可以通过新颖的抽奖方式来取代传统抽奖箱的抽奖方式&#xff0c;如砸蛋、百宝箱、气球、彩球、礼盒等多种抽奖模式&#xff0c;而且还有着强大的奖项设置功能和灵活控制奖品的开…

爆点火箭逃跑游戏 全程手把手教搭建

这个源码经过本人修复&#xff0c;已经完美运营&#xff0c;并且修复了查看下级代理信息等&#xff0c;邀请页面弹窗&#xff0c;支付接入问题&#xff08;可以对接市面上基本的支付&#xff09;具体的就不介绍了&#xff0c;有搭建教程 我接下来给搭建简单说一下搭建 搭建环境…

火柴人小程序linux,这里居然有火柴人的一些不一样的小程序?要不来玩一下

火柴人还有不一样的玩法&#xff1f;是的&#xff0c;这几个火柴人结合了搭桥&#xff0c;结合了跑酷&#xff0c;结合了划线小游戏&#xff0c;是不是感觉有一些意外呢&#xff1f;小编推荐的这几款关于火柴人的小游戏考验着玩家种种能力&#xff0c;如果你觉得自己对游戏的天…

基于Unity3D的跑酷游戏(火柴人)

项目报告均含&#xff08;此链接&#xff1a;https://download.csdn.net/download/mengchenliuguang/11245411&#xff09; 场景展示 在火柴人的通关路上&#xff0c;我们要注意不让他掉落到深渊。 使用W技能可以连续起跳&#xff0c;起跳到上面地方躲避障碍物。 不小心掉落…

C++ 字符跑酷#5 游戏制作实录

版本号&#xff1a;1.4 嗨&#xff0c;我是一块铌金属。 对的&#xff0c;我期末考试考完了&#xff0c;又闲了。 那就……做游戏吧&#xff01; 首先&#xff0c;为了我们的游戏像德芙一样丝滑&#xff0c;我使用了_kbhit()函数。 这个函数的作用是&#xff1a;判断是否有…

C语言实现钢琴块小游戏(低仿拉胯版)

声明&#xff1a;这篇文章中出现的代码并非凑字数&#xff0c;与叙述内容无关的均已用文字代替&#xff0c;还请耐心阅读 &#xff08;没错俺偷懒直接把作业报告改改&#xff08;其实没怎么改&#xff09;就发出来了&#xff09; &#xff08;虽然说是小游戏&#xff0c;但不知…