版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計(jì)課程設(shè)計(jì)名稱: 猴子吃桃問題 專 業(yè) 班 級 : 學(xué) 生 姓 名 : 學(xué) 號 : 指 導(dǎo) 教 師 : 課程設(shè)計(jì)時(shí)間: 計(jì)算機(jī)專業(yè)課程設(shè)計(jì)任務(wù)書學(xué)生姓名專業(yè)班級學(xué)號題 目猴子吃桃問題課題性質(zhì)其它課題來源自擬課題指導(dǎo)教師同組姓名主要內(nèi)容有一群猴子摘了一堆桃子,他們每天吃當(dāng)前桃子的一半且多一個(gè),到了第10天就只余下1個(gè)桃子,用多種方法求出原來這群猴子共摘了多少個(gè)桃子。使用鏈表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)猴子吃桃問題的求解;使用遞歸實(shí)現(xiàn)猴子吃桃問題的求解。任務(wù)要求 1研究應(yīng)用遞歸算法2應(yīng)用數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識(shí)進(jìn)行實(shí)際問題求解與分析;3編程實(shí)現(xiàn)算法4具有良好的界面,操作方便靈活、簡潔高效。5按要求撰寫課程設(shè)計(jì)
2、報(bào)告和設(shè)計(jì)總結(jié)。參考文獻(xiàn)1c程序設(shè)計(jì)(第二版),譚浩強(qiáng),北京,清華大學(xué)出版社,1999.2visual c+實(shí)用教程(第一版),張榮梅、梁曉林,冶金工業(yè)出版社,2004.3c+實(shí)用教程(第一版),楊明軍、董亞卓、汪黎,人民郵電出版社,2002.4數(shù)據(jù)結(jié)構(gòu)(c語言版),嚴(yán)蔚敏,吳偉民,清華大學(xué)出版社,1997。 審查意見指導(dǎo)教師簽字:教研室主任簽字: 年 月 日 說明:本表由指導(dǎo)教師填寫,由教研室主任審核后下達(dá)給選題學(xué)生,裝訂在設(shè)計(jì)(論文)首頁1 需求分析int sum_fan(int n,int i) 子函數(shù)sum_fun,參數(shù)n和i接受主函數(shù)的參數(shù) x和dayn = sum_fan(n+1)
3、*2,-i); 每一次都用(n+1)*2)的值去調(diào)用子函數(shù)本身sum = sum_fan(x,day); 調(diào)用子函數(shù)sum_fan,并把返回得結(jié)果賦給sum“前期工作”:構(gòu)想源代碼中各個(gè)步驟,為編寫源程序準(zhǔn)備。構(gòu)思函數(shù)整體框架;1.首先定義好main函數(shù);2.調(diào)用函數(shù)類型;3.編寫源程序;“后期工作”:敲定程序后,檢查程序是否健全。1.上機(jī)輸入源程序;2.對源程序進(jìn)行編譯;3.對源程序進(jìn)行調(diào)試;4.對源程序進(jìn)行運(yùn)行;2 概要設(shè)計(jì)首先,設(shè)第一天摘了x個(gè)桃子。然后,列出算術(shù)表達(dá)式:(x/2-1)/2-1)/2-1)/2-1.)=1,一共有9個(gè)除以2減一。接著, 從第九天分析,第9天的桃子是(1+1
4、)*2,第8天是(1+1)*2+1)*2,.一直到第一天。我嘗試著用遞歸來思考??梢园l(fā)現(xiàn)每一天的桃子得數(shù)量都是用前一天桃子的數(shù)量加上1之后再乘以2。于是可以把式子換成(n+1)*2 ,然后可以把具體問題留給在子函數(shù)處理,用(n+1)*2的結(jié)果再去調(diào)用子函數(shù)本身。這樣就可以實(shí)現(xiàn)遞歸的嵌套了,最后再用主函數(shù)去調(diào)用子函數(shù)。3 運(yùn)行環(huán)境(軟、硬件環(huán)境)window nt/2003/xp4 開發(fā)工具和編程語言開發(fā)工具:vc+編程語言:c/c+5 詳細(xì)設(shè)計(jì)#include#include#define null 0typedef struct linknode int data; struct linkn
5、ode *next;/鏈表指針node;node *head; /頭結(jié)點(diǎn)int day;void main() int n;pp:do printf(t *n); printf(t *猴子吃桃問題的實(shí)現(xiàn)方法*n); printf(t *n);printf(t 1 數(shù)組實(shí)現(xiàn)n); printf(t 2 遞歸實(shí)現(xiàn)n); printf(t 3 鏈表實(shí)現(xiàn)n); printf(t 4 退出程序n); printf(t *n); printf(t請選擇(1-4): bb); scanf(%d,&n); if(n4) printf(重新輸入1或2或3n); goto pp;else switch(n) ca
6、se 1: printf(使用數(shù)組的方法); array();break; case 2: printf(使用遞歸的方法); digui();break; case 3: printf(使用鏈表的方法); creat(); print(); break; case 4: exit(0); while(n=1&n=0;i-)arri-1=2*(arri+1);printf(第%d天還剩桃子%dn,i+1,arri);return 0;int digui()int fun(int);int count;count=fun(1);printf(count=%dn,count);int fun(int
7、 day)if(day=11)return 1;elsereturn (fun(day+1)+1)*2;int creat()/創(chuàng)建鏈表 node *p,*s; int peaches=1;/第十天時(shí)只剩下一個(gè)桃子 day=11; head=(node*)malloc(sizeof(node); p=head;while(day0) s=(node*)malloc(sizeof(node);/分配存屬空間 s-data=peaches;/用來存放結(jié)點(diǎn)數(shù)據(jù) p-next=s; /把結(jié)點(diǎn)插入鏈表中 p=s; peaches=(peaches+1)*2;/第一天的桃子數(shù)是第二天桃子數(shù)加后的2倍; d
8、ay-; p-next=null; p=head; head=head-next;/使頭指針指向頭結(jié)點(diǎn) free(p); /釋放指針p return 0;int print()/輸出從這十天每天的桃子數(shù) int a; node *p; p=head;day=11;while(p&day0) printf(第%d天的桃子數(shù):%d個(gè)n,day,p-data); p=p-next; day-;return 0;6 調(diào)試分析在這段代碼的編寫過程中我遇到了一些問題。我的問題有兩個(gè):來源:(/s/blog_43b943ab01009mf9.html) - 關(guān)于猴
9、子吃桃子得問題(遞歸算法)_王磊_新第一,在遞歸調(diào)用子函數(shù)本身時(shí),沒有找到一個(gè)方法去控制它調(diào)用的次數(shù)。第二,沒有想到要用一個(gè)變量去保存它每一次調(diào)用本身后得結(jié)果,以至于無法返回到主函數(shù)解決第一個(gè)問題:設(shè)置一個(gè)變量day = 9 然后用放在調(diào)用子函數(shù)的第二個(gè)參數(shù)里面去控制子函數(shù)調(diào)用本身的次數(shù)。第二個(gè)問題的解決方法:在子函數(shù)里面用n 去保存遞歸算法返回的值。7 測試結(jié)果(小三黑體)程序運(yùn)行結(jié)果如圖1所示圖1 程序運(yùn)行結(jié)果1圖2 程序運(yùn)行結(jié)果2圖3 程序運(yùn)行結(jié)果3圖4 程序運(yùn)行結(jié)果4參考文獻(xiàn)1.邊肇祺,模式識(shí)別(第二版),北京:清華大學(xué)出版社,1988,25352. 李永忠,幾種小波變換的圖像處理技術(shù),西北民族學(xué)院學(xué)報(bào)(自然科學(xué)版),2001.6,22(3),15183c程序設(shè)計(jì)(第二版),譚浩強(qiáng),北京,清華大學(xué)出版社,1999.4visual c+實(shí)用教程(第一版),張榮梅、梁曉林,冶金工業(yè)出版社,2004.5c+實(shí)用教程(第一版),楊明軍、董亞卓、汪黎,人民郵電出版社,2002.6數(shù)據(jù)結(jié)構(gòu)(c語言版),嚴(yán)蔚敏,吳偉民,清華大學(xué)出版社,1997。 心得體會(huì)通過該課程設(shè)計(jì),全面系統(tǒng)的理解了解了編譯原理程序構(gòu)造的 一般原理和一般原理和基本實(shí)現(xiàn)方法。把死板的課本知識(shí)變的生動(dòng)有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過的計(jì)算機(jī)編程原理的知識(shí)強(qiáng)化,能夠把課堂上
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度征收拆遷安置房租賃合同示范文本4篇
- 2025年度汽車配件買賣居間服務(wù)協(xié)議書4篇
- 2025年度基礎(chǔ)設(shè)施安全監(jiān)測測量合同樣本4篇
- 2025年版智慧城市建設(shè)承包協(xié)議書范本3篇
- 2025年分期購買文具辦公用品協(xié)議
- 二零二五年度離婚協(xié)議書起草與婚姻登記協(xié)助服務(wù)協(xié)議3篇
- 二零二五年電商客服人員服務(wù)規(guī)范培訓(xùn)合同3篇
- 2025年分銷商市場推廣策略合同
- 二零二五年度綠色公路路基施工合同范本4篇
- 2025年度生態(tài)旅游區(qū)租賃合作協(xié)議3篇
- 勞動(dòng)合同續(xù)簽意見單
- 大學(xué)生國家安全教育意義
- 封條(標(biāo)準(zhǔn)A4打印封條)
- 2024年保育員(初級)培訓(xùn)計(jì)劃和教學(xué)大綱-(目錄版)
- 河北省石家莊市2023-2024學(xué)年高二上學(xué)期期末考試 語文 Word版含答案
- 企業(yè)正確認(rèn)識(shí)和運(yùn)用矩陣式管理
- 分布式光伏高處作業(yè)專項(xiàng)施工方案
- 陳閱增普通生物學(xué)全部課件
- 檢驗(yàn)科主任就職演講稿范文
- 人防工程主體監(jiān)理質(zhì)量評估報(bào)告
- 20225GRedCap通信技術(shù)白皮書
評論
0/150
提交評論