




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)一約瑟夫環(huán)問題實(shí)驗(yàn)報(bào)告通信二班 雷鶴20100820207 李春陽 20100820208 李孟琪20100820209問題描述設(shè)編號(hào)為1-n的n(n>0)個(gè)人按順時(shí)針方向圍成一圈.首先第1個(gè)人從1開始順時(shí)針報(bào)數(shù).報(bào)m的人(m為正整數(shù)).令其出列。然后再從他的下一個(gè)人開始,重新從1順時(shí)針報(bào)數(shù),報(bào)m的人,再令其出列。如此下去,直到圈中所有人出列為止。求出列編號(hào)序列。二、需求分析1、需要基于線性表的基本操作來實(shí)現(xiàn)約瑟夫問題2、需要利用數(shù)組來實(shí)現(xiàn)線性表3、測(cè)試用例輸入:10,3輸出:36927185104三、概要設(shè)計(jì) 抽象數(shù)據(jù)類型為實(shí)現(xiàn)上述程序的功能,應(yīng)以整數(shù)存儲(chǔ)用戶的輸入,以及計(jì)算出的結(jié)果。算法的基本思想利用數(shù)組來代表一個(gè)環(huán),然后模擬報(bào)號(hào)出圈的過程,直到所有人都出圈。程序的流程程序由三個(gè)模塊組成:輸入模塊:完成兩個(gè)正整數(shù)的輸入,存入變量n和m中。計(jì)算模塊:計(jì)算這n個(gè)數(shù)的輸出序列輸出模塊:屏幕上顯示這n個(gè)數(shù)的輸出序列。四、詳細(xì)設(shè)計(jì)程序代碼:#include<iostream>usingnamespacestd;main(){ intn,m,k,j; //n為總?cè)藬?shù),m為出列編號(hào) cin>>n>>m; int*listArray=newint[n]; //將n個(gè)人放在大小為n的數(shù)組中 int*outArray=newint[n]; //用以存放依此出列的人的編號(hào) for(inti=0;i<n;i++) listArray[i]=i+1; //對(duì)n個(gè)人進(jìn)行編號(hào) for(i=1,j=k=0;k<n;j=++j%n) //i為報(bào)數(shù)編號(hào),初始值為1,循環(huán)訪問數(shù)組元素,即數(shù)組元素循環(huán)報(bào)數(shù) { if(listArray[j]!=0) { if(i==m) //報(bào)數(shù)編號(hào)和出列編號(hào)相同時(shí) { outArray[k]=listArray[j];//將該元素放置到出列數(shù)組里,并輸出 cout<<outArray[k]<<""; k++; listArray[j]=0; //將出列元素置0 i=1; //下一個(gè)元素從1開始重新報(bào)數(shù) } else i++; //報(bào)數(shù)編號(hào)與出列編號(hào)不同時(shí),繼續(xù)報(bào)數(shù) } } cout<<'\n'; return0;}物理數(shù)據(jù)類型隊(duì)列元素及出列序列都以整型數(shù)組方式存儲(chǔ)算法的具體步驟 將隊(duì)列里的元素編號(hào)循環(huán)訪問數(shù)組元素第一個(gè)元素從1開始報(bào)數(shù),報(bào)數(shù)編號(hào)與出列編號(hào)相同時(shí)出列,并將該元素置為0下一個(gè)元素重新從1開始報(bào)數(shù),依次循環(huán)輸入和輸出的格式輸入格式:n,m輸出格式1:在字符界面上輸出這n個(gè)數(shù)的輸出序列輸出格式2:將這n個(gè)數(shù)的輸出序列寫入到文件中五、測(cè)試結(jié)果其他程序代碼程序1#include<stdio.h>#include<stdlib.h>typedefinttype;//結(jié)點(diǎn)數(shù)據(jù)域類型為整型typedefstructLNode//結(jié)點(diǎn)類型定義{structLNode*next;//結(jié)點(diǎn)的指針域typea;//結(jié)點(diǎn)的數(shù)據(jù)域}link;voidinitLink(link*&l){l=(link*)malloc(sizeof(link));//在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)申請(qǐng)鏈表長(zhǎng)度的連續(xù)空間//初始化鏈表l->next=l;}voidinsert(link*&l)//在其后插入新成員{link*p;p=(link*)malloc(sizeof(link));p->next=l->next;l->next=p;}voiddestory(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;i<n;i++){insert(temp);temp->next->a=i+1;//創(chuàng)建鏈表temp=temp->next;}temp->next=NULL;temp=head;while(head->next!=NULL){for(inti=1;i<m;i++)//模擬約瑟夫過程{ { if(temp->next==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("\n");}}程序2#include<iostream>usingnamespacestd;voidmain(){ intn,m,a[100001],k,i,j; cin>>n; if(n>100000) { cout<<"請(qǐng)重輸"; return; }cin>>m; for(i=1;i<=n;i++) { a[i]=1; } j=0; k=0; for(i=1;i<=n;i++) { if(a[i]==1) { j=j+a[i]; if(j==m) { j=0; a[i]=0; k++; cout<<i<<""; } } if(i==n) i=0; } }七、實(shí)驗(yàn)心得李孟琪:該實(shí)驗(yàn)利用數(shù)組實(shí)現(xiàn)線性表,算法簡(jiǎn)便,但產(chǎn)生很多不必要的消耗,下一步可以嘗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租借儲(chǔ)罐協(xié)議書
- 財(cái)產(chǎn)分清協(xié)議書
- 教學(xué)工作室合同協(xié)議書
- 聘用養(yǎng)花協(xié)議書
- 用電合伙協(xié)議書
- 管理導(dǎo)購協(xié)議書
- 正規(guī)勞務(wù)工合同協(xié)議書
- 收購二手房合伙協(xié)議書
- 職工死亡協(xié)議書
- 調(diào)解病房協(xié)議書
- 中國卒中學(xué)會(huì)急性缺血性卒中再灌注治療指南+2024解讀
- 裝飾報(bào)價(jià)單完整版本
- 中醫(yī)適宜技術(shù)的試題及答案
- 設(shè)計(jì)單位現(xiàn)場(chǎng)施工期間配合及技術(shù)經(jīng)驗(yàn)服務(wù)措施
- 【MOOC期末】《英美文學(xué)里的生態(tài)》(北京林業(yè)大學(xué))期末中國大學(xué)慕課MOOC答案
- 能源管理系統(tǒng)投標(biāo)技術(shù)文件
- 大學(xué)生個(gè)人職業(yè)生涯規(guī)劃課件模板
- 24秋國家開放大學(xué)《企業(yè)信息管理》形考任務(wù)1-4參考答案
- 2024年共青團(tuán)入團(tuán)考試題庫及答案
- 《拆除人行道施工方案》
- 精簡(jiǎn)小型風(fēng)力發(fā)電系統(tǒng)
評(píng)論
0/150
提交評(píng)論