多重循環(huán)程序設(shè)計_第1頁
多重循環(huán)程序設(shè)計_第2頁
多重循環(huán)程序設(shè)計_第3頁
多重循環(huán)程序設(shè)計_第4頁
多重循環(huán)程序設(shè)計_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

多重循環(huán)程序設(shè)計第1頁,共18頁,2023年,2月20日,星期一二、多重循環(huán)示例程序例1、求S=12!+13!+14!S=0Fori=12to14T=1Forj=1toiT=t*jEndfS=s+tEndf?s第2頁,共18頁,2023年,2月20日,星期一例2:求[10,100]內(nèi)的素數(shù)的個數(shù)。方法一: settalkoffclearn=0forx=10to100 fori=2tox-1 ifmod(x,i)=0 exit endif ifi=x-1 n=n+1 endif nextnext?"n=",nsettalkonreturnreturn思考:有沒有辦法減少循環(huán)次數(shù)?第3頁,共18頁,2023年,2月20日,星期一n=0forx=10to100 fori=2toint(sqrt(x)) ifmod(x,i)=0 exit endif ifi=int(sqrt(x)) n=n+1 endif nextnext?"n=",n思考:將ifi=int(sqrt(x))移出循環(huán)要怎樣修改程序?第4頁,共18頁,2023年,2月20日,星期一n=0forx=10to100 fori=2toint(sqrt(x)) ifmod(x,i)=0 exit endif next ifi>int(sqrt(x)) n=n+1 endifnext?"n=",n第5頁,共18頁,2023年,2月20日,星期一方法二:n=0forx=10to100 flag=.t. fori=2toint(sqrt(x)) ifmod(x,i)=0 flag=.f. exit endif next ifflag=.t. n=n+1 endifnext?"n=",n第6頁,共18頁,2023年,2月20日,星期一例3求1-1/2+1/3-1/4+...+1/49-1/50之和。settalkoffs=0p=-1n=1dowhilen<=50 p=-p s=s+1/n*p n=n+1enddo?"s=",ssettalkon 第7頁,共18頁,2023年,2月20日,星期一例4.一個數(shù)如果剛好與它所有的因子之和相等,則稱該數(shù)為一個“完數(shù)”,如:6=1+2+3,則6就是一個完數(shù)。求出1000以內(nèi)的完數(shù)之和,完數(shù)的個數(shù)。CLEARS=0 &&S中存放完數(shù)之和N=0 &&N中存放完數(shù)的個數(shù)FORI=1TO1000S1=0 &&S1中存放I的因子之和

FORK=1TOI/2IFI%K=0 &&判斷K是否為I的因子

S1=S1+KENDIFNEXTIFS1=IS=S+IN=N+1ENDIFNEXT?S,NRETURN第8頁,共18頁,2023年,2月20日,星期一例5:求所有的水仙花數(shù)。(水仙花數(shù):3位的正整數(shù),它各位數(shù)字的立方和與該數(shù)值相等。)方法一:settalkoffclearforn=100to999 c=n%10 b=int(n/10)%10 a=int(n/100) ifn=a^3+b^3+c^3 ?n endifnextsettalkonreturn第9頁,共18頁,2023年,2月20日,星期一方法二:settalkoffclearfora=1to9 forb=0to9 forc=0to9 n=a*100+b*10+c ifn=a^3+b^3+c^3 ?n endif next nextnextsettalkonreturn第10頁,共18頁,2023年,2月20日,星期一例6編程求[6,1400]內(nèi)能被7整除,且至少有一位數(shù)字為7的整數(shù),最大一個是多大?(思考:求第5大的)CLEARN=0&&個數(shù)M=0&&最大者之初值假定為0FORK=6TO1400IFMOD(K,7)=0AND“7”$STR(K)N=N+1M=KENDIFENDFOR?“MAX=”,M第11頁,共18頁,2023年,2月20日,星期一例7.求所有符合算式ij*ji=1300的最大的和最小的數(shù)ij(即i*10+j),共有多少組這樣的i,j。其中i、j是1~9之間的一位整數(shù)。CLEARMIN=0N=0FORI=1TO9FORJ=1TO9IF(I*10+J)*(J*10+I)=1300IFMIN=0MIN=I*10+J&&第一次求出來的滿足條件的ij最小

ENDIFMAX=I*10+J&&最后一次求出來的滿足條件的ij最大

N=N+1ENDIFNEXTNEXT?MIN,MAX,N第12頁,共18頁,2023年,2月20日,星期一例8.若有三個正整數(shù)a、b、c滿足a^2+b^2=c^2,則a,b,c稱為勾股數(shù)組,編一程序,問有多少個三個數(shù)均小于100的勾股數(shù)組(注意:a,b,c不能為0)。CLEARN=0FORC=1TO99FORA=1TOCFORB=1TOCIFA^2+B^2=C^2N=N+1ENDIFNEXTNEXTNEXT?N第13頁,共18頁,2023年,2月20日,星期一例9.百錢百雞問題。用100錢買100只雞,公雞一只五錢,母雞一只三錢,雛雞三只一錢,編程計算共有幾種買法(要求每種雞至少要買1只)。N=0FORX=1TO20FORY=1TO33Z=100-X-YIF5*X+3*Y+Z/3=100N=N+1ENDIFNEXTNEXT?N第14頁,共18頁,2023年,2月20日,星期一例10已知斐波那契數(shù):1,1,2,3,5,8,13,21,34,....,即從第三項開始,每一項是其前面最鄰近兩項之和。編程求此數(shù)列的第40項數(shù)是多少。方法一:SETTALKOFF&&此處采用的是遞推法STORE1TOF1,F2,IDOWHILEI<=19F1=F1+F2F2=F1+F2I=I+1ENDDO&&每次循環(huán)產(chǎn)生二項?F2SETTALKONRETURN第15頁,共18頁,2023年,2月20日,星期一方法二:SETTALKOFFDIMENSIONA(35)STORE1TOA(1),A(2)I=3T=2DOWHILEI<=40A(I)=A(I-1)+A(I-2)T=T+A(I)I=I+1ENDDO?TSETTALKONRETURN第16頁,共18頁,2023年,2月20日,星期一練習(xí)1、編程計算2!+4!+6!+8!+10!。

2、在[10000,20000]范圍內(nèi)考察個位數(shù)字是3的素數(shù),問:這樣的素數(shù)有多少個?其中最大的一個等于幾?

3、所謂回文數(shù)是從左至右與從右至左讀起來都是一樣的數(shù)字,如:121是一個回文數(shù)。編寫程序,求出100—900之間的所有能被3整除的回文數(shù)的個數(shù)和它們的和。

第17頁,共18頁,2023年,2月20日,星期一4、求s=1*2+2*3+3*4+...+n*(n+1),當(dāng)s>10000時退出,求退出時n值。5、求在1,2,3,4,...,10這10個數(shù)中,任意選兩個不同的數(shù),求它們的和能被2整除的數(shù)的總對數(shù).(注意:象3+5和5+3認(rèn)為是同一對數(shù))

6、用一元紙幣兌換一分、兩分和五分的硬幣,要求兌換硬幣的總數(shù)為50枚,問共有多少種換法?(注:在兌換中一分、兩分或五分的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論