这里更新指针法,真的每句都是坑

(寥寥数十句,句句都是坑)

 //
// 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++的更多相关文章

  1. 小小c#算法题 - 12 - Joseph Circle(约瑟夫环)

    约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数(从1开始报数),数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又 ...

  2. tc 147 2 PeopleCircle(再见约瑟夫环)

    SRM 147 2 600PeopleCircle Problem Statement There are numMales males and numFemales females arranged ...

  3. 14.约瑟夫环问题[JosephusProblem]

    [题目] n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字).当一个数字删除后,从被删除数字的下一个继续删除 ...

  4. 约瑟夫环问题-循环链表VS数组

    2013-08-18 21:27:50 循环链表.数组解决约瑟夫环问题的比较 注意几点: 循环链表的建立不难,在删除循环链表中元素时,用pCur->next != pCur判断结束: 每一轮计数 ...

  5. UVA 305 Joseph (约瑟夫环 打表)

     Joseph  The Joseph's problem is notoriously known. For those who are not familiar with the original ...

  6. hdu1443(约瑟夫环游戏的原理 用链表过的)

    Problem Description The Joseph's problem is notoriously known. For those who are not familiar with t ...

  7. Roman Roulette(约瑟夫环模拟)

    Roman Roulette Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  8. 约瑟夫环问题 --链表 C语言

    总共有m个人在圆桌上,依次报名,数到第n个数的人退出圆桌,下一个由退出人下一个开始继续报名,循环直到最后一个停止将编号输出 #include <stdio.h>#include <s ...

  9. 约瑟夫环(Joseph)的高级版(面向事件及“伪链表””)

    约瑟夫环问题: 在一间房间总共有n个人(下标0-n-1),只能有最后一个人活命. 按照如下规则去杀人: 所有人围成一圈 顺时针报数,每次报到q的人将被杀掉 被杀掉的人将从房间内被移走 然后从被杀掉的下 ...

随机推荐

  1. 解决Centos7下中文显示乱码

    第一步:先查看是不是ctr的问题: SecureCRT的修改,选项→会话选项,将外观中的字符编码集修改为UTF-8即可,其他终端程序同理 如果不是则再参照如下文档操作:https://www.cnbl ...

  2. 一个很酷炫也挺实用的JS库leader-line

    简单粗暴,直入主题,看看效果再说. 是不是这效果挺棒?这样的效果在做系统时,可以有很多的应用,可以让枯燥的页面生动起来. 具体效果,大家可以上这个搜索网站Mag[i]上面看,切身体会一下. 这是一个开 ...

  3. 关于位图数据和标记位-P3

    文章目录 1 背景 1.1 问题 2 问题1探究 2.1 没有区的情况 2.2 一个区的情况 2.3 两个区的情况 2.4 三个区的情况 2.5 四个区的情况 2.6 五个区的情况 3 问题2探究 3 ...

  4. Python3笔记002 - 1.2 搭建python开发环境

    第1章 认识python 1.2 搭建python开发环境 1.2.1 python开发环境概述 python开发环境常见的操作系统: Windows Mac OS Linux 1.2.2 安装pyt ...

  5. Python优秀开源项目Rich源码解析

    这篇文章对优秀的开源项目Rich的源码进行解析,OMG,盘他.为什么建议阅读源码,有两个原因,第一,单纯学语言很难在实践中灵活应用,通过阅读源码可以看到每个知识点的运用场景,印象会更深,以后写代码的时 ...

  6. How many ways??,题解

    题目: 题意: 找过k条边的路径个数. 分析: 首先注意一下题意,同一个点过两次算两次,做过类似的,过k条边的最短路,只要搞一个矩阵,然后快速幂就好了,这个也一样,维护信息变一下,然后就好了. 如果k ...

  7. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(一): 搭建基本环境、整合 Swagger、MyBatisPlus、JSR303 以及国际化操作

    相关 (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y- ...

  8. Mysql 常用语句实战(2)

    前置 sql 语句 用来创建表.插入数据 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- ...

  9. day20 函数收尾+面向过程+模块

    目录 一.算法(二分法) 二.面向过程与函数式 1 编程范式/思想 2 面向过程 3 函数式 3.1 匿名函数与lambda 三.模块 1 什么是模块 2 为何要有模块 3 怎么用模块 3.1第一次导 ...

  10. Django之 admin组件

    本节内容 路由系统 models模型 admin  views视图 template模板 Django Admin介绍 admin 是django 自带的用来让你进行数据库管理的web app. 提供 ...