版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、迭代、歸納與循環(huán) 思維61110 )(21nnnnnsssxss要求近似值滿足TF輸入x,初始化s1x=1.0e-6 s1=s2 s2=0.5*(s1+x/s1) e=s2-s1輸出s2 分析:解決該問題的N-S圖如右:例1:用牛頓迭代法求x的平方根。牛頓迭代公式為:迭代變量S1,s2#include #include main() float x,s1=1;s2,err; scanf(“%f”,&x); if(x=1.0e-6) (2); (3); err=s2-s1; printf(“nsqrt(%f)=%fn”,x,s2); (1)err=s2-s1;(2)s1=s2(3)s2=
2、0.5*(s1+x/s1)例2:統(tǒng)計(jì)輸入的行數(shù)、單詞的個(gè)數(shù)(設(shè)單詞是一個(gè)不包含任何空白字符的字符序列)以及輸入的總的字符個(gè)數(shù)。分析:(1)要表示輸入的行數(shù)、單詞的個(gè)數(shù)和輸入的總字符數(shù),可設(shè)以下三個(gè)變量nl、nw、nc,初值均為0;(2)對于nl,每輸入一個(gè)n增1,對于nc,每輸入一個(gè)字符,增1,而對于nw,只有當(dāng)輸入的字符為非空白字符、非回車且前一個(gè)字符為空或回車時(shí)才增1;(3)設(shè)計(jì)變量inword,當(dāng)其值0時(shí),表示當(dāng)前字符的前一字符為空白或回車,當(dāng)其值為1時(shí),表示當(dāng)前字符的前一字符非空或回車,此當(dāng)前字符仍為該單詞中的內(nèi)容;(4)inword的初始值為0;(5)故nw增1的條件是:當(dāng)前字符非空
3、白或回車且inword=0;#define YES 1;#define NO 0;#include main() int c, nl, nw, nc, inword; inword=NO; nl=nw=nc=0;while (c=getchar()!=#) + nc; if (c=n) +nl; if (c= = |c= =n | c= =t) inword=NO; else if (inword= =NO) inword=YES; +nw; printf(“nl=%d nw=%d nc=%dn”,nl,nw,nc);歸納法與循環(huán)(1)歸納法,是從大量的特殊性中總結(jié)出規(guī)律性或一般性的結(jié)論。(2
4、)歸納,在程序設(shè)計(jì)上主要表現(xiàn)為遞歸和迭代。我們常常用遞歸和迭代的方式把一個(gè)復(fù)雜的計(jì)算過程化為簡單過程的多次重復(fù),這種重復(fù)很容易用循環(huán)來實(shí)現(xiàn);(3)歸納法的另一重要用途是用于數(shù)列和級數(shù)求和;例3:猴子第一天摘下若干桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉了一半,又多吃了一個(gè),以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上再想吃時(shí),發(fā)現(xiàn)只剩下一個(gè)桃子了。求第一天共摘多少個(gè)桃子。 Sn=(Sn+1+1)*2程序如下:main() int s, i; s=1; for (i=1;i=9;i+) ?; printf(“s=%dn”,s);例4:有一張足夠大的紙,
5、厚0.09毫米,問將它對折多少次后可以達(dá)到珠穆朗瑪峰的高度(8848米)?分析:(1)采用歸納法;(2)設(shè)a為高度,初值為910 -5米;(3)對折后,高度為前一次高度的2倍,每次乘2后判斷乘積是否已超過8848米。若已超過,則記下乘2的次數(shù)就是對折的次數(shù);(4)請讀者自己編程;*枚舉法:就是逐一列舉出可能解的各個(gè)元素,并加以判斷,直到求得所需要的解。常用在排列、組合、數(shù)據(jù)分類、信息檢索、多解方程的求解上;枚舉法與循環(huán)思維使用枚舉法,必須掌握兩條原則: 確定搜索的范圍(這個(gè)范圍必須是有限的); 選擇枚舉的策略(按照一條什么樣的路徑來逐一枚舉);這兩條原則使用得好壞,對程序的工作量有巨大的影響。
6、例5:對于-5x11;-10y9;-6z18,求方程:x3+y3+z3=3的全部整數(shù)解。程序如下:#include main() int x, y, z; for(x= -5; x12; x+) for(y=-10; y10; y+) for(z=-6; z19; z+) if (?) printf(“%5d,%5d,%5dn”,x,y,z);x*x*x+y*y*y+z*z*z= =3例6:百錢百雞問題。用100元錢買100只雞,每只公雞5元,每只母雞3元,每3只小雞1元,要求每種雞至少買一只,且必須是整只的,問各種雞各買多少只?分析:(1)這是一個(gè)組合問題,歸根到底是求三元一次方程的一組解;
7、(2)設(shè) i,j,k分別表示公雞、母雞和小雞的只數(shù)。為了確定i,j,k的取值范圍,可以有不同方法。不同的方法,程序的計(jì)算量相差甚遠(yuǎn);(3)方法一:i :1 20;j:1 33;k:1100;(4)方法二:i :1 18;j:1 31;k:100ij;(5)方法三:由i +j+k=100及5i +3j+k/3=100得14i+8j=200,由此可得: i :1 13;j:1 23;k=100ij;(6)方法四:由方法三中的14i+8j=200得7i+4j=100可得: i :1 13;j=(100 7 i)/4;k=100ij;main() int i,j,k; for(i=1;i=20;i+)
8、 for(j=1;j=33;j+) k:=100-i-j; if(?) printf(“k=%d,j+%d,i=%dn”,k,j,i); i*5+j*3+k/3=100例7:求整數(shù)a和b的最小公倍數(shù)。分析:(1)如果 i 是a 和b的最小公倍數(shù),則 i 必能被 a 和 b 整除,同時(shí) i 必須是自然數(shù),所以其取值范圍是;(2)方法一:i 從1開始,依次增加,直到第一個(gè)能被a和b整除為止,這個(gè) i 就是a和b的最小公倍數(shù);(3)方法二:令從i 從a開始,并使 i 每次增加a而不是增加1,這就保證了 i 總是a的倍數(shù)。故每次只要判斷 i 能否被b整除就可以了。一旦判斷成立,i 就是a和b的最小公倍
9、數(shù);程序一:#include main( ) int a,b, i; scanf(“%d%d”,&a,&b); i=0; while(1) i+; if (i%a= =0) if (i%b= =0)printf(“%dn”, i); break; 程序二:#include main( ) int a,b, i; scanf(“%d%d”,&a,&b); i=0; while(1) i+=a; if (i%b= =0) printf(“%dn”, i); break; 例8:用循環(huán)語句打印下列圖案:*程序如下:main( ) int i , j; for (i=1
10、; i=6; i+) for (j=1; j=20-i ; j+) printf(“ ”); for (j=1; j=2*i-1;j+) printf(“*”); printf(“n”); 例:用循環(huán)語句打印下列圖案:*分析:(1)將該圖案分成上下兩部分處理;(2)定行、定行中的字符個(gè)數(shù)、定每行打印的起始位置。幾種循環(huán)的比較nP.114 自學(xué)寫出下列程序運(yùn)行結(jié)果y);x,n%dy%d,xprintf(7);(i while;iy y ;ii;xx 0)(i%2! if i; do0;yxiy;x,i, int()mainx=1,y=12 );#printf( :2 case break;i);,n*dprintf(*% :1 case 0; case (i/j) switch )ij;*2ij;(ifor 4;ji,int ()main完善
溫馨提示
- 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)僅提供信息存儲空間,僅對用戶上傳內(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版新型節(jié)能門窗安裝與綠色建筑合同2篇
- 2025年度牛奶飲品國際市場拓展與海外銷售代理合同4篇
- 2025年專業(yè)培訓(xùn)班股權(quán)投資與管理合同4篇
- 2025年度鋼構(gòu)加工企業(yè)信用風(fēng)險(xiǎn)防范合同
- 2025年度面包烘焙行業(yè)質(zhì)量標(biāo)準(zhǔn)認(rèn)證合同3篇
- 基于2025年度計(jì)劃的研發(fā)與技術(shù)升級合同2篇
- 2025年度個(gè)人二樓商鋪?zhàn)赓U合同書(包含違約責(zé)任及糾紛解決機(jī)制)
- 2025年度長春寫字樓租賃管理服務(wù)合同4篇
- 二零二五年度知識產(chǎn)權(quán)綜合保護(hù)與品牌建設(shè)合同
- 二零二五年度鋼構(gòu)建筑抗震性能評估與加固施工合同
- 小兒甲型流感護(hù)理查房
- 霧化吸入療法合理用藥專家共識(2024版)解讀
- 2021年全國高考物理真題試卷及解析(全國已卷)
- 拆遷評估機(jī)構(gòu)選定方案
- 趣味知識問答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級上冊物理全冊教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級下冊核心素養(yǎng)目標(biāo)全冊教學(xué)設(shè)計(jì)
- JJG 692-2010無創(chuàng)自動(dòng)測量血壓計(jì)
- 三年級下冊口算天天100題(A4打印版)
- CSSD職業(yè)暴露與防護(hù)
評論
0/150
提交評論