约瑟夫环C++代码及实验报告.doc

约瑟夫环C++代码及实验报告.doc

ID:55594603

大小:52.50 KB

页数:7页

时间:2020-05-19

约瑟夫环C++代码及实验报告.doc_第1页
约瑟夫环C++代码及实验报告.doc_第2页
约瑟夫环C++代码及实验报告.doc_第3页
约瑟夫环C++代码及实验报告.doc_第4页
约瑟夫环C++代码及实验报告.doc_第5页
资源描述:

《约瑟夫环C++代码及实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验一约瑟夫环问题实验报告通信二班雷鹤李春阳李孟琪一、问题描述设编号为1-n的n(n>0)个人按顺时针方向围成一圈.首先第1个人从1开始顺时针报数.报m的人(m为正整数).令其出列。然后再从他的下一个人开始,重新从1顺时针报数,报m的人,再令其出列。如此下去,直到圈中所有人出列为止。求出列编号序列。二、需求分析1、需要基于线性表的基本操作来实现约瑟夫问题2、需要利用数组来实现线性表3、测试用例输入:10,3输出:36927185104三、概要设计抽象数据类型为实现上述程序的功能,应以整数存储用户的输入,以及计算出的结果。算法的基本思想利用数组来代

2、表一个环,然后模拟报号出圈的过程,直到所有人都出圈。程序的流程程序由三个模块组成:(1)输入模块:完成两个正整数的输入,存入变量n和m中。(2)计算模块:计算这n个数的输出序列(3)输出模块:屏幕上显示这n个数的输出序列。四、详细设计程序代码:#includeusingnamespacestd;main(){intn,m,k,j;//n为总人数,m为出列编号cin>>n>>m;int*listArray=newint[n];//将n个人放在大小为n的数组中int*outArray=newint[n];//用以存放依此出列的人的

3、编号for(inti=0;i

4、编号与出列编号不同时,继续报数}}cout<<'';return0;}物理数据类型队列元素及出列序列都以整型数组方式存储算法的具体步骤(1)将队列里的元素编号(2)循环访问数组元素(3)第一个元素从1开始报数,报数编号与出列编号相同时出列,并将该元素置为0(4)下一个元素重新从1开始报数,依次循环输入和输出的格式输入格式:n,m输出格式1:在字符界面上输出这n个数的输出序列输出格式2:将这n个数的输出序列写入到文件中五、测试结果其他程序代码程序1#include#includetypedefinttype

5、;//结点数据域类型为整型typedefstructLNode//结点类型定义{structLNode*next;//结点的指针域typea;//结点的数据域}link;voidinitLink(link*&l){l=(link*)malloc(sizeof(link));//在内存的动态存储区申请链表长度的连续空间//初始化链表l->next=l;}voidinsert(link*&l)//在其后插入新成员{link*p;p=(link*)malloc(sizeof(link));p->next=l->next;l->next=p;}voidd

6、estory(link*&l)//删除其后面的元素{link*t;t=l->next;l->next=l->next->next;free(t);}intmain(){intm,n;charp;while(scanf("%d%c%d",&n,&p,&m)!=EOF){link*head;link*temp;initLink(head);temp=head;for(inti=0;inext->a=i+1;//创建链表temp=temp->next;}temp->next=NULL;temp=he

7、ad;while(head->next!=NULL){for(inti=1;inext==NULL)temp=head;}temp=temp->next;}if(temp->next==NULL){printf("%d",head->next->a);destory(head);}else{printf("%d",temp->next->a);destory(temp);}}printf("");}}程序2#includeusingnamespacestd;voidma

8、in(){intn,m,a[],k,i,j;cin>>n;if(n>){cout<<"请重输";return;}cin>>m;for(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。