




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、约瑟夫环姓 学 系 班名号别信息与电子系级计算填写日期 2010年10月30一 问题描述约瑟夫(joseph)问题的一种描述是:编号为1, 2, n的n个人按顺 时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数 作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到 m时停止报数。报m的人岀列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求岀出列顺序o二.基本要求利用利用顺序表存储结构及单向循环链表存储结构模拟约瑟夫环,按照出 列的顺序印出各人的编号三测试数据m的上限为20,初值为6;(1)
2、 对于门二7, 7个人的密码依次为:3, 1, 7, 2, 4, 8, 4进行测试。(2) 对于从键盘输入的n和n个人的密码进行测试。用数组实现约瑟夫环程序代码:#include<stdio. h>void ma in ()int num100;i nt m, n, i, k=0, s二0;int *p=num;pr i ntf ("输入初始密码和人数n n"); scanf("%d%ct, &m, &n);printfc个人密码n,z);for (i=1;i<=n;i+)scanf ("%d", &n
3、umi);i 二1 ;whi le(s<=(n-1) /当未退出人数(s)大于等于一时执行循环体 if (*(p+i) !二0)k+;if (k 二二 m)printf (,z%d ,i);m=* (p+i);*(p+i)二0; /对退出的人编号置零k 二0;s+;i+;i f (i二二(n+1) /当循环到最后一位时返回到第一位i 二1 ;测试数据结果:cdt:usersstyledesktopdebugcppl.exe *输入初始密码和人数n6 7个人密码31724846147235 press any key to continue五用链表实现约瑟夫环程序代码:#i nciude&
4、lt;stdio.h>#i nciude<mai ioc h>typedef struet i i stint num;int passward;struet 丨 i st *next;node;node *creatlist(int n)node *p,*q,*head;int i二1;head二(node *)ma i ioc (s i zeof (node); head->num=i;printff请输入第1个密码:,z);scanf("%d",&head->passward);p二head;for (i =2; i <=n
5、; i +)q二(node *)ma i ioc (s i zeof(node);if (q=0) return 0;pr intf c请输入第%4个人的密码i); scanf (,%d,/, &q->passward);q->num二 i; p->next二q;p 二q;p->next二head; return head;void josephus (node *1, int k)int i;node *p=l,*q,*s; while (p->next!二p)for (i二1; i<k; i+)q 二p;p二p->next;printf c
6、%d,z, p->num); k=p->passward;s 二p;q->next二p->next;p二p->next;free (s);pr intf r%d,z, p->num); printf (,n<,);void ma in ()node *l;i nt n, k;printfc请输入实验人数:“); scanf ("%d",&n);pr i ntf ("请输入初始key的值:); scanf("%ct, &k);丨二crea11 i st (n); josephus (i, k);测试
7、数据结果:请输入实验人数:7 请输入材站key的值:6 请输入寬1个密科:3 请鎰入重2个人的密码:1 请输入童3个人的密利:? 请输入寬4个人的密箱:2 请输入第5个人的密箱:4 请输入童6个人的密柜):8 请输入寬?个人的密码:46 1 4 7 2 3 5press any key to continue六:学习体会和实验中遇到的问题约瑟夫环,经过理解,可以认为是一个数学应用题:已知n个人围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一 个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到桌周围的人全部出列。用数组实现约瑟夫环的过程中,我第一个遇到的 问题是理解了实验问题,但算法无法写成表达式,怎样让数组中的元素重 复剔除,后来通过网络上的学习和同学的参考理解了。在数组的实现过程 中,我感觉最难的是循环的剔除。用链表实现过程中,我觉得通过指针的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京2025年北京市律师协会秘书处招聘笔试历年参考题库附带答案详解
- 危化品驾驶员聘用合同
- 离婚起草协议书格式
- 二零二五商场广告租赁合同
- 二零二五住宅物业服务合同示范文本
- 二零二五版合同股权转让协议
- 社区医疗合作协议书二零二五年
- 委托物业管理合同标准样本
- 变更租赁合同的三方协议
- 体育中心场地出租合同二零二五年
- CJJT148-2010 城镇燃气加臭技术规程
- DLT 5285-2018 输变电工程架空导线(800mm以下)及地线液压压接工艺规程
- Unit3TravelPlansLesson3(课件)人教新起点版英语四年级下册
- 《3-6岁儿童学习与发展指南》考试复习题库350题(含答案)
- 小学生文明如厕
- JBT 11699-2013 高处作业吊篮安装、拆卸、使用技术规程
- 2024年全国版图知识竞赛(小学组)考试题库大全(含答案)
- 专题08 八年级下册易混易错总结-备战2024年中考道德与法治一轮复习知识清单(全国通用)
- 中集集团招聘题库
- 赣政通管理员操作手册
- 2024年ISTQB认证笔试历年真题荟萃含答案
评论
0/150
提交评论