约瑟夫环--C语言解析
约瑟夫环问题
约瑟夫环:在我们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语言解析相关推荐
- python约瑟夫环_Python语言之如何实现约瑟夫环问题
本文Python语言实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,希望对大家学习Python语言有所帮助,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0 ...
- 用单循环链表实现约瑟夫环(c语言)
首先我是设置的链表节点的元素包括三个:1.每个人的各自拥有的顺序(math表示)2.每个人所拥有的密码(data表示)3.指针元素指向下一个: typedef struct node {int mat ...
- c语言约瑟夫环问题,C++_详解约瑟夫环问题及其相关的C语言算法实现,约瑟夫环问题
N个人围成一圈 - phpStudy...
详解约瑟夫环问题及其相关的C语言算法实现 约瑟夫环问题 N个人围成一圈顺序编号,从1号开始按1.2.3......顺序报数,报p者退出圈外,其余的人再从1.2.3开始报数,报p的人再退出圈外,以此类推 ...
- 杀人游戏约瑟夫环(洛谷P1145题题解,Java语言描述)
题目要求 题目链接P1145 约瑟夫环问题了解一下 约瑟夫环问题其实在数据结构里与单循环链表关系密切,但是这里模拟就完事~~ 我写过的约瑟夫环问题 AC代码(Java语言描述) import java ...
- 数据结c语言约瑟夫环实验报告,数据结构约瑟夫环实验报告.doc
数据结构约瑟夫环实验报告.doc 数据结构与算法设计约瑟夫环实验报告实验一专业物联网工程班级物联网1班学号15180118姓名刘沛航一. 实验目的 1.熟悉VC环境,学习使用C语言利用链表的存储结构解 ...
- 约瑟夫环的c语言描述
约瑟夫环的c语言描述 问题描述 代码(C语言) 问题描述 约瑟夫(Joseph)问题的一种描述是:编号为1,2,-,n的n个人按顺时针方向围坐一圈.每人持有一个密码(正整数).一开始任选一个正整数作为 ...
- 约瑟夫环问题(C语言循环链表)
1.约瑟夫环问题(C语言循环链表) 我相信大家都可以画出这个图,知道大体的解题的思想,但是却不知道代码该怎么下手,因此,下面我直接上代码,代码中该注释的地方我都进行了注释,希望到大家有帮助: #inc ...
- C语言使用数组和循环解决约瑟夫环问题
C语言使用数组和循环解决约瑟夫环问题 约瑟夫入狱,监狱内共有 33 个犯人.某日 33 名犯人围成一圈,从第一个犯人开始报数,报到数字 7 的犯人出列, 被枪毙,下一名犯人重新从 1 开始报数.依次类 ...
- 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc
顺序表实现约瑟夫环地问题,C语言 计算机科学与工程学院 PAGE PAGE 2 <算法与数据结构>试验报告 计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 1 ...
最新文章
- Android 获取 AudioRecord 麦克风音量大小并做选择性发送
- APL开发日志--2012-11-26
- 亚马逊与微软赢得一亿美元云计算合约,IBM黯然神伤
- Python基础篇【第6篇】: Python模块subprocess
- SQL知识你了解多少?
- Hash算法中的CRC
- Laravel源码学习文章汇总
- xcode 插件安装路径
- php爬虫伪造请求头,Nodejs 伪造IP 爬取图片
- 周立功开发板安装linux,极速搭建周立功IMX283A ARM Linux开发环境(1)
- C#全局钩子参考文章
- Matlab GUI animatedline 串口实时
- CT一般扫描参数_头颅CT扫描技术
- 架构模式 - 微内核模式
- Codeforces Round #776 (Div. 3)-D. Twist the Permutation
- 基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION
- 直追PD-1,癌症免疫新靶点CSF-1R药物研究进展综述
- Oracle Distilled网站下的TimesTen相关帖子
- Ubuntu 22.04​下加快rust的编译速度
- MSDN WebCast网络广播全部下载列表(更新至2/11/2007)