程序基礎(chǔ)循環(huán)結(jié)構(gòu)多重_第1頁
程序基礎(chǔ)循環(huán)結(jié)構(gòu)多重_第2頁
程序基礎(chǔ)循環(huán)結(jié)構(gòu)多重_第3頁
程序基礎(chǔ)循環(huán)結(jié)構(gòu)多重_第4頁
程序基礎(chǔ)循環(huán)結(jié)構(gòu)多重_第5頁
免費預(yù)覽已結(jié)束,剩余6頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、多重多重循環(huán)循環(huán) 當(dāng)循環(huán)體本身又是一個循環(huán)語句時,我們稱它為循當(dāng)循環(huán)體本身又是一個循環(huán)語句時,我們稱它為循環(huán)的嵌套。嵌套著的每一個循環(huán)稱環(huán)的嵌套。嵌套著的每一個循環(huán)稱為層,處于較外層的為層,處于較外層的叫外循環(huán),處于較內(nèi)層的叫內(nèi)循環(huán),根據(jù)嵌套的層數(shù)分叫外循環(huán),處于較內(nèi)層的叫內(nèi)循環(huán),根據(jù)嵌套的層數(shù)分別稱之為雙重循環(huán)、三重循環(huán)等。設(shè)計多重循環(huán)時,要別稱之為雙重循環(huán)、三重循環(huán)等。設(shè)計多重循環(huán)時,要特別注意內(nèi)、外循環(huán)之間的關(guān)系,以及各語句安放的位特別注意內(nèi)、外循環(huán)之間的關(guān)系,以及各語句安放的位置,內(nèi)外循環(huán)的控制變量不能同名。置,內(nèi)外循環(huán)的控制變量不能同名。 例1:九九乘法表program jiujiu

2、;program jiujiu;var i,j:integer;var i,j:integer;beginbegin for i:=1 to 9 do for i:=1 to 9 do begin begin for j:=1 to 9 do for j:=1 to 9 do write(i:3,write(i:3,* *,j, ,j,= =,i ,i* *j);j); writeln; writeln; end; end;end.end.外循環(huán)外循環(huán)內(nèi)循環(huán)內(nèi)循環(huán)i=1i=1j=1j=11 1* *1=11=1j=2j=21 1* *2=22=2j=3j=31 1* *3=33=3j=9j=9

3、1 1* *99i=2i=2j=1j=12 2* *1=21=2j=2j=22 2* *2=42=4j=3j=32 2* *3=63=6j=9j=92 2* *99i=9i=9 枚舉法,通常又稱為窮舉法,枚舉法,通常又稱為窮舉法,一一枚舉出各種可能的情況,一一枚舉出各種可能的情況,并判斷那一種可能是符合要求的解。是一種沒有其它辦法并判斷那一種可能是符合要求的解。是一種沒有其它辦法情況下的方法,是一種最情況下的方法,是一種最“笨笨”的方法,對一些無法用解析的方法,對一些無法用解析法求解的問題使用此方法非常奏效,用循環(huán)處理枚舉法很法求解的問題使用此方法非常奏效,用循環(huán)處理枚舉法很方便。方便。采用枚

4、舉算法解題的基本思路:(1) 確定枚舉對象、枚舉范圍和判定條件;(2) 一一枚舉可能的解,驗證是否是問題的解 例例1 1、一個炊事員上街采購一個炊事員上街采購, ,用用100100元錢買了元錢買了100100只雞只雞, , 其其中母雞一只中母雞一只5 5元元, ,公雞一只公雞一只3 3元元, ,小雞小雞3只只1元元 , ,每種至少一只且每種至少一只且正好把錢買完。問母雞、公雞、小雞各買多少只?正好把錢買完。問母雞、公雞、小雞各買多少只? 分析:分析:設(shè)有母雞設(shè)有母雞I I只只, ,公雞公雞J J只,則小雞為只,則小雞為100-I-J100-I-J只只, ,另外,另外,5 5* *I+ 3I+

5、3* * J+(100-I-J)/3=100 J+(100-I-J)/3=100,我們可以利用二重循環(huán)組合出,我們可以利用二重循環(huán)組合出所有可能的所有可能的i,ji,j值,看是否滿足條件。這里值,看是否滿足條件。這里I I的值可以是的值可以是1 1到到2020,J J的值可以的值可以1 1到到3333。var i,j,k:integer;begin for i:=1 to 20 do枚舉枚舉母雞的只數(shù)母雞的只數(shù) for j:=1 to 33 do 枚舉枚舉公雞的只數(shù)公雞的只數(shù) begin k:=100-i-j; 計算小雞計算小雞的只數(shù)的只數(shù) if 5*i+3*j+k/3=100驗證驗證 the

6、n writeln(i:5,j:5,k:5); end;end. 4 18 78 8 11 81 12 4 84例例2:要將一張:要將一張100元的大鈔票換成等值為元的大鈔票換成等值為10元元5元元2元元1元,元,一張的小鈔票,要求每次換成一張的小鈔票,要求每次換成40張小鈔票,每種至少一張。張小鈔票,每種至少一張。編程輸出所有的換法。編程輸出所有的換法。 var i,j,k,l:integer;begin for i:=1 to 9 do 換換10元的可能張數(shù)元的可能張數(shù) for j:=1 to 17 do 換換5元的可能張數(shù)元的可能張數(shù) for k:=1 to 37 do 換換2元的可能張

7、數(shù)元的可能張數(shù) begin l:=40-i-j-k; 換換1元的可能張數(shù)元的可能張數(shù) if (l=1) and (i*10+j*5+k*2+l=100) then writeln(i:3,j:3,k:3,l:3); end;end.var a,n:integer;begin n:=6; while n1 do begin a:=1; repeat write(*); a:=a+1 until a=n; writeln; n:=n-1; end;end.練習(xí)練習(xí)1 1閱讀程序,寫出運行結(jié)果。閱讀程序,寫出運行結(jié)果。*程序:程序:var i,m,n:integer;begin for i:= 10

8、00 to 9999 do begin m:=i div 100; n:=i-m*100; if (m+n)*(m+n)=i then writeln(i) endend.練習(xí)練習(xí)2上機(jī)編寫程序:上機(jī)編寫程序:編程找出四位整數(shù)編程找出四位整數(shù)abcd中,滿足下列條件的數(shù):中,滿足下列條件的數(shù):(ab+cd)(ab+cd)=abcd。練習(xí)練習(xí)3 3、編寫程序:找出編寫程序:找出100100999999之間的所有之間的所有“水仙水仙花數(shù)花數(shù)”?!八苫〝?shù)水仙花數(shù)”是這樣的一個整數(shù),它的每是這樣的一個整數(shù),它的每一位數(shù)字的立方之和正好等于這個三位數(shù)。如:一位數(shù)字的立方之和正好等于這個三位數(shù)。如:15

9、3153就是就是“水仙花數(shù)水仙花數(shù)”。 var a,b,c:integer;begin for a:=1 to 9 do枚舉百位上的數(shù)字枚舉百位上的數(shù)字 for b:=0 to 9 do 枚舉十位上的數(shù)字枚舉十位上的數(shù)字 for c:=0 to 9 do 枚舉個位上的數(shù)字枚舉個位上的數(shù)字 if a*a*a+b*b*b+c*c*c=a*100+b*10+c then writeln(a*100+b*10+c);end.153370371407練習(xí)練習(xí)4 4、在屏幕上輸出由在屏幕上輸出由*組成的三角形圖組成的三角形圖形,其中三角形的層數(shù)形,其中三角形的層數(shù)n由鍵盤輸入。如由鍵盤輸入。如當(dāng)當(dāng)n=4時顯示圖形如右時顯示圖形如右. . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * varvar i,j,n:integer; i,j,n:integer;beginbegin readln(n); readln(n); for i:=( )do for i:=( )do begin begin write( write( :n-i+1);:n-i+1);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論