约瑟夫环问题

约瑟夫环:在我们C语言的初学基础中,会遇到魔方阵,做游戏踢出
队列。都要用到循环数组。魔方阵之前有讲解,今天只说做游戏踢出队列。
这类问题有很多说法。现在我们说做游戏退出:有n个人,在一起做游戏,由第一个人从1开始数,数到m,第m个人退出。接着m的下一个人从1开始数,数到m,第m个人退出。如果说数了第n个人,那么接着从第一个人依次数,这样循环踢人,直到游戏仅剩余1人。
思路
定义数组,设置下标
做一个计数器,记录步数,数到m退出游戏,下次直接跳过
记录游戏剩余人数,当计数器数到m时,剩余人数减1,计数器清零,重新计数
游戏进行到第n个人,循环队列,直到仅剩1人。
代码如下

int  Quarrel(int n,int m)
{int tmp = 0;//计数器,从一开始数int count = n;//游戏剩余人数int i = 0;int *arr = (int *)malloc(sizeof(int)*n);//动态开辟数组arr[n]for(i= 0;i < n;i++){arr[i] = 1;//做下标标记,标记为1,说明在游戏队列,为0退出游戏}i = 0;//这时i已经走到n-1,所以i要重新赋值为1while(count > 1)//游戏人数大于1,继续游戏{if(arr[i] != 0)//下标不为0{tmp++;//计数器++if(tmp == m){count--;//游戏人数减1arr[i] = 0;//下标为0tmp = 0;//计数器清零,下一个人从1开始数}}//i++;i = (i+1)%n;循环数组}for(i = 0; i < n;i++){if(arr[i] != 0)//遍历查找游戏剩余第几个人{printf("赢家是第:%d个人\n",i+1);}}free(arr);//释放return i+1;
}int main()
{Quarrel(15,4);Quarrel(4,3);Quarrel(2,3);return 0;
}

结果就不粘了,肯定正确,本人测试过的,如果有其他问题
欢迎读者留言。

约瑟夫环--C语言解析相关推荐

  1. python约瑟夫环_Python语言之如何实现约瑟夫环问题

    本文Python语言实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,希望对大家学习Python语言有所帮助,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0 ...

  2. 用单循环链表实现约瑟夫环(c语言)

    首先我是设置的链表节点的元素包括三个:1.每个人的各自拥有的顺序(math表示)2.每个人所拥有的密码(data表示)3.指针元素指向下一个: typedef struct node {int mat ...

  3. c语言约瑟夫环问题,C++_详解约瑟夫环问题及其相关的C语言算法实现,约瑟夫环问题 N个人围成一圈 - phpStudy...

    详解约瑟夫环问题及其相关的C语言算法实现 约瑟夫环问题 N个人围成一圈顺序编号,从1号开始按1.2.3......顺序报数,报p者退出圈外,其余的人再从1.2.3开始报数,报p的人再退出圈外,以此类推 ...

  4. 杀人游戏约瑟夫环(洛谷P1145题题解,Java语言描述)

    题目要求 题目链接P1145 约瑟夫环问题了解一下 约瑟夫环问题其实在数据结构里与单循环链表关系密切,但是这里模拟就完事~~ 我写过的约瑟夫环问题 AC代码(Java语言描述) import java ...

  5. 数据结c语言约瑟夫环实验报告,数据结构约瑟夫环实验报告.doc

    数据结构约瑟夫环实验报告.doc 数据结构与算法设计约瑟夫环实验报告实验一专业物联网工程班级物联网1班学号15180118姓名刘沛航一. 实验目的 1.熟悉VC环境,学习使用C语言利用链表的存储结构解 ...

  6. 约瑟夫环的c语言描述

    约瑟夫环的c语言描述 问题描述 代码(C语言) 问题描述 约瑟夫(Joseph)问题的一种描述是:编号为1,2,-,n的n个人按顺时针方向围坐一圈.每人持有一个密码(正整数).一开始任选一个正整数作为 ...

  7. 约瑟夫环问题(C语言循环链表)

    1.约瑟夫环问题(C语言循环链表) 我相信大家都可以画出这个图,知道大体的解题的思想,但是却不知道代码该怎么下手,因此,下面我直接上代码,代码中该注释的地方我都进行了注释,希望到大家有帮助: #inc ...

  8. C语言使用数组和循环解决约瑟夫环问题

    C语言使用数组和循环解决约瑟夫环问题 约瑟夫入狱,监狱内共有 33 个犯人.某日 33 名犯人围成一圈,从第一个犯人开始报数,报到数字 7 的犯人出列, 被枪毙,下一名犯人重新从 1 开始报数.依次类 ...

  9. 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc

    顺序表实现约瑟夫环地问题,C语言 计算机科学与工程学院 PAGE PAGE 2 <算法与数据结构>试验报告 计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 1 ...

最新文章

  1. 谷歌数字图书馆_如何在没有联系的情况下找到6位数字的工作-提示使我获得了Google和其他技术巨头的工作机会...
  2. TensorFlow入门(一)基本用法
  3. 紫膜质-形态与意识的桥梁
  4. 博客会被搬去csdn
  5. java 界面线性布局_怎么用java代码写一个线性布局;布局里面有两个按钮是水平的...
  6. Codeforces Round #658 (Div. 2)
  7. Mac 神兵利器(二) 极简软件清单
  8. selenium 基于浏览器驱动测试
  9. 入门机器学习(十六)--降维(PCA算法)
  10. solr 使用记录 - solr dataimporter 定时任务
  11. sencha touch Container控件 setRecord 与 setData的区别
  12. [转]如何设置opengl结合vc开发绚丽的3D图形---操作详解
  13. 网络图的绘制方法详细讲解
  14. 外螺纹对照表_螺纹对照表
  15. 三线压力传感器原理_压力传感器 压力传感器原理
  16. IOI2021 国家集训队作业部分题解
  17. 仿苹果桌面Android,iLauncher(仿苹果桌面)安卓版
  18. java计算机毕业设计企业物资管理系统源代码+数据库+系统+lw文档
  19. 【九阳真经口诀】他强由他强,清风拂山岗;他横由他横,明月照大江。他自狠来他自恶,我自一口真气足。
  20. 南师大C:真分数分解为埃及分数

热门文章

  1. 黄峰达:程序员的成长焦虑
  2. Spaceship Titanic——简单的预处理+LightGBM
  3. 冬天苹果笔记macbookpro消除静电的方法
  4. Java数组练习--数组随机赋值
  5. 如何用ChatGPT搭建品牌文本体系?(品牌名+slogan+品牌故事)
  6. 一条代码带大家绘制交互式+pdf+png等多格式桑基美图
  7. 有奖提问|《新程序员》专访“Apache之父”Brian Behlendorf
  8. 一、VS2015update2环境下DirectX11编程说明(2016.5.5更新)
  9. n行Python代码系列:两行程序判断是否处于Debug模式
  10. curl 模拟 GET\POST 请求,以及 curl post 上传文件