循環(huán)語(yǔ)句的綜合應(yīng)用_第1頁(yè)
循環(huán)語(yǔ)句的綜合應(yīng)用_第2頁(yè)
循環(huán)語(yǔ)句的綜合應(yīng)用_第3頁(yè)
循環(huán)語(yǔ)句的綜合應(yīng)用_第4頁(yè)
循環(huán)語(yǔ)句的綜合應(yīng)用_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、第十三課循環(huán)語(yǔ)句的綜合應(yīng)用例1faibonacci(費(fèi)波拉契):數(shù)列的前幾個(gè)數(shù)分別為,編程求此數(shù)列的前n項(xiàng)。分析:第、項(xiàng)的值是,從第項(xiàng)開(kāi)始,它的值是前兩項(xiàng)的值的和。F(1)=0F(2)=1F(N)=F(N-1)+F(N-2) (N=3)f1 f2 f3 0 1 1 f1 f2 f3 1 1 2這種算法稱為“迭代”例2用尼考曼徹斯法求兩個(gè)自然數(shù)a和b的最大公約數(shù)。方法是:輾轉(zhuǎn)相減。如要求158與36的最大公約數(shù),可以進(jìn)一步轉(zhuǎn)化為158-36=122與36的最大公約數(shù),繼續(xù)減,如果不夠減就交換兩個(gè)數(shù),直至差為0停止,最后一次不為0的數(shù)就是最大公約數(shù)。過(guò)程如下:(158,36)=(122,36)=(

2、86,36)=(50,36)=(14,36)前面的數(shù)比后面小,交換:=(36,14)=(22,14)=(8,14)再交換: =(14,8)=(6,8)=(8,6)=(2,6)=(6,2)=(4,2)=(2,2)=(0,2) 例3 連續(xù)若干個(gè)正整數(shù)之和為1000,求有多少種這樣的數(shù)列。分析:采用窮舉法,窮舉起點(diǎn)的數(shù),從1開(kāi)始試起,當(dāng)和等于1000時(shí),這是一組解,繼續(xù)從2開(kāi)始試起,一直試到1000停止。 例4 編寫(xiě)一個(gè)程序,驗(yàn)證哥德巴赫猜想:任一個(gè)大于等于6的偶數(shù)總可以分解為兩個(gè)素?cái)?shù)之和。輸入n, 輸出兩個(gè)素?cái)?shù)之和。 分析:窮舉法,先窮舉第一個(gè)數(shù),從2開(kāi)始試起,判斷2和(n-2)是不是都是素?cái)?shù),如

3、果都是,輸出解,如果不全是,繼續(xù)窮舉第一個(gè)數(shù),從2開(kāi)始試起,直到兩個(gè)數(shù)全是素?cái)?shù)停止。用兩個(gè)布爾型變量來(lái)測(cè)試,分別對(duì)應(yīng)兩個(gè)數(shù),初始化為true,如果是素?cái)?shù),值就全為true,循環(huán)終止,輸出解。var i,j,k,n:integer; b,b1,b2:Boolean; begin readln(n); i:=2; repeat b1:=true; b2:=true; for j:=2 to i div 2 do 判斷i是不是素?cái)?shù)if i mod j=0 then b1:=false; for j:=2 to (n-i) div 2 do 判斷n-i是不是素?cái)?shù)if (n-i) mod j=0 the

4、n b1:=false; i:=i+1; until b1 and b2; 直到兩個(gè)數(shù)全是素?cái)?shù)if b1 and b2 then writeln(n,=,i-1,+,n-i+1) i多加了1end. 練習(xí)1、任給一個(gè)自然數(shù)n(n2.1*109),求出這個(gè)自然數(shù)不同因數(shù)的個(gè)數(shù)。var n,i,s:int64;begin readln(n); i:=2; s:=0; while i=(n div 2) do begin if n mod i=0 then s:=s+1; i:=i+1; end; writeln(s);end.2、求親密數(shù)對(duì):所謂親密數(shù)對(duì)是指:A的因子和等于B,而B(niǎo)的因子和正好等于

5、A,且A ,則稱,為親密數(shù)對(duì)。例如284和220,220的因子有1,2,4,5,11,20,22,44,55,110,他們和為284,284的因子有1,2,4,71 112,他們和為220。程序要求:找3100000中的親密數(shù)對(duì),注意不要重復(fù)顯示。Var a,b,c,i:longint;begin for a:=3 to 100000 do begin b:=1; for i:=2 to a do if a mod i=0 then b:=b+i; c:=1; for i:=2 to b do if b mod i=0 then c:=c+i; if (a=c) and (ab) then w

6、riteln(a:5,b:5); end;end.3、 求1N(N100000)中的完全數(shù),所謂完全數(shù)是指因子和正好等于本身的數(shù)。如28=1+2+4+7+14,故28就是一個(gè)完全數(shù),程序輸入N,輸出在此范圍內(nèi)的完全數(shù)。var i,j,n,s:longint;begin readln(n); for i:=1 to n do begin s:=0; for j:=1 to i div 2 do if i mod j=0 then s:=s+j; if s=i then writeln(i); end;end.4、 級(jí)數(shù)求和 問(wèn)題描述:已知:Sn= 112131n。顯然對(duì)于任意一個(gè)整數(shù)K,當(dāng)n足夠

7、大的時(shí)候,Sn大于K?,F(xiàn)給出一個(gè)整數(shù)K(1=k=15),要求計(jì)算出一個(gè)最小的n;使得SnK。 輸入 k 輸出 n 樣例 輸人:1 輸出:2var s:real; i,k:integer;begin readln(k); s:=0; i:=1; while s=k do begin s:=s+1.0/i; i:=i+1; end; writeln(i-1);end.5、 蜜蜂路線問(wèn)題描述一只蜜蜂在下圖所示的數(shù)字蜂房上爬動(dòng),已知它只能從標(biāo)號(hào)小的蜂房爬到標(biāo)號(hào)大的相鄰蜂房,現(xiàn)在問(wèn)你:蜜蜂從蜂房M開(kāi)始爬到蜂房N,MN100,有多少種爬行路線?如輸入:1 14則輸出:377var m,n,s,i,k:integer;begin readln(m,n); s:=0; k:=n-m-1; while k0 do begin for i:=k downto 1 do s:=s+i; s:=s+1; k:=k-1; end; writeln(s+1);end.6、 有一堆100多個(gè)的零件,若三個(gè)三個(gè)數(shù),剩二個(gè);若五個(gè)五個(gè)數(shù),剩三個(gè);若七個(gè)七個(gè)數(shù),剩個(gè)。請(qǐng)你編一個(gè)程序計(jì)算出這堆零件至少是多少個(gè)?var i:i

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論