circle踢人(约瑟夫环) c++
这里更新指针法,真的每句都是坑
(寥寥数十句,句句都是坑)
//
// Created by snnnow on 2020/4/12.
//question:转圈,一共N个人,数到M的出列,求最后一个人的编号
//这个题学到了一种新的方法,用指针(用数组实现)
//初始条件每一个数组存放的数是他的下一位数,如a[3]=4;那么a[a[j]]就是下一位的下一位
//去掉人以后,只需要把这个人的上一个指向它的指针换成这个人所指向的指针(也就是说,没人指向它,它就没有了) //注意一个问题:不要把初始的n改变掉(你应改另设一个初始值为N的数,作为计数器) #include <iostream>
using namespace std;
int main(){
int n,m;
cin >> n >> m;
int j = n;
int k = ;
int p = ;
int ans[];
for (int i = ; i < n; ++i) {//注意是从一开始的
ans[i] = i + ;//赋值到下一位 }
ans[n] = ;//注意第一个 while(p < n){
while(k < m){//这个地方要注意,这里只循环了n-1次,循环的最后一次在下面
j = ans[j];//指针在移动啊~就相当于j在一直加
k++;
}
cout<<ans[j]<<" ";//这里相当于循环的最后一次(ans[j]可以看做j的下一位啊)
p++;
ans[j] = ans[ans[j]];
k = ;
}
//小白菜曾尝试改代码,但是这样做是不对的
//因为不要忘了ans[j-1]...说不定j-1=0就凉了
// while(p < n){
// while(k <= m){
// j = ans[j];
// k++;
// }
// cout<<j<<" ";
// p++;
// ans[j-1] = ans[j];
// k = 1;
// } }
circle踢人(约瑟夫环) c++的更多相关文章
- 小小c#算法题 - 12 - Joseph Circle(约瑟夫环)
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数(从1开始报数),数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又 ...
- tc 147 2 PeopleCircle(再见约瑟夫环)
SRM 147 2 600PeopleCircle Problem Statement There are numMales males and numFemales females arranged ...
- 14.约瑟夫环问题[JosephusProblem]
[题目] n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字).当一个数字删除后,从被删除数字的下一个继续删除 ...
- 约瑟夫环问题-循环链表VS数组
2013-08-18 21:27:50 循环链表.数组解决约瑟夫环问题的比较 注意几点: 循环链表的建立不难,在删除循环链表中元素时,用pCur->next != pCur判断结束: 每一轮计数 ...
- UVA 305 Joseph (约瑟夫环 打表)
Joseph The Joseph's problem is notoriously known. For those who are not familiar with the original ...
- hdu1443(约瑟夫环游戏的原理 用链表过的)
Problem Description The Joseph's problem is notoriously known. For those who are not familiar with t ...
- Roman Roulette(约瑟夫环模拟)
Roman Roulette Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- 约瑟夫环问题 --链表 C语言
总共有m个人在圆桌上,依次报名,数到第n个数的人退出圆桌,下一个由退出人下一个开始继续报名,循环直到最后一个停止将编号输出 #include <stdio.h>#include <s ...
- 约瑟夫环(Joseph)的高级版(面向事件及“伪链表””)
约瑟夫环问题: 在一间房间总共有n个人(下标0-n-1),只能有最后一个人活命. 按照如下规则去杀人: 所有人围成一圈 顺时针报数,每次报到q的人将被杀掉 被杀掉的人将从房间内被移走 然后从被杀掉的下 ...
随机推荐
- 第二部分用户交互程序开发,通过paramiko记录ssh会话记录
需求及任务:实现一个给用户登录的界面(通过ssh登到堡垒机上,然后给它展现一个命令行的页面,然后他选择登哪台机器,一选择就连上去且把日志也记录下来). 先在admin创建几条组数据并与用户关联如下图: ...
- ADAS感知设计
ADAS传感器融合 0.传感器标定 首先标定传感器.一般可以精度高的传感标定用精度低一个数量级的传感器,如用激光雷达标定毫米波雷达. 毫米波雷达标定:可以采用激光雷达对毫米波雷达进行标定.选取一个纹理 ...
- 阿里云Linux CentOS8.1 用 xshell 上传和下载文件
下载: 例如有一个script 文件夹,我们要把它打包成 tar文件,并下载到本地.具体命令如下: 1.进入script 所在的目录,先打包,命令如下: tar -cvf script.tar scr ...
- html中绝对路径和相对路径的区别?比较相对路径和绝对路径的优缺点
绝对路径和相对路径的区别? 1. 绝对路径:就是你的文件或目录在硬盘上的真正的路径例如“bg.jpg”这个图片是存放在硬盘的“E:\img”目录下,那么 “bg.jpg”这个图片的绝对路径就是“E:\ ...
- SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束
SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束 其实这里知识不难,只是好久不接触突然被问的话有时还真的一时答不上,自己写一遍胜过盲扫.当然,也有些常读常新的地方会 ...
- HDU - 5970 题解
题目链接 HDU - 5970 分析 很显然\(f(x,y)\)与\(f(x+y*k,y)\)的结果相同,因为它们在第一次取模后会变成相同的式子 我们再看一下数据的范围,突破口肯定在\(m\)那里 那 ...
- day58 作业
目录 一.做一个图书管理系统页面 二.做一个主页模版 三.点赞 一.做一个图书管理系统页面 <!DOCTYPE html> <html lang="en"> ...
- day13 作业
目录 1.编写文件修改功能,调用函数时,传入三个参数(修改的文件路径,要修改的内容,修改后的内容)既可完成文件的修改 2.编写tail工具 3.编写登录功能 4.编写注册功能 选做题:编写ATM程序实 ...
- 深克隆(deepclone)
1.简单版: <script type="text/javascript"> const newObj = JSON.parse(JSON.stringify(oldO ...
- iview国际化问题(iview官方提供的兼容vue-i18n@6.x+使用组件报错)
问题描述: 按照iview官方的说法配置i18n发现在使用组件的时候会报错. 兼容 vue-i18n@6.x+的配置如下图 报错如下图 解决方法: 经过参考element-ui的国际化配置终于解决问题 ...