第4章循環(huán)控制_第1頁
第4章循環(huán)控制_第2頁
第4章循環(huán)控制_第3頁
第4章循環(huán)控制_第4頁
第4章循環(huán)控制_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、循環(huán)體循環(huán)體循環(huán)控制行循環(huán)控制行15)(2xxxf15)(2xxxfabeg 2.求求 時(shí)結(jié)束時(shí)結(jié)束。 000001.0!.! 3!2132nxnxxxxennxex=0;ex=0;p = 1;p = 1;while (p0.000001) while (p0.000001) ex += p; ex += p; 計(jì)算新的計(jì)算新的p p; 問題:如何計(jì)算p?計(jì)算第i個(gè)p,需要兩個(gè)i次的循環(huán)。第一個(gè)循環(huán)計(jì)算xi,第二個(gè)循環(huán)計(jì)算i!解決方案:從前一項(xiàng)計(jì)算后一項(xiàng)。如果p是第i項(xiàng)的值,則第i+1項(xiàng)的值為 p*x/(i+1) int main()int main()double ex, x, p;/exd

2、ouble ex, x, p;/ex存儲(chǔ)存儲(chǔ)e ex x的值,的值,p p保存當(dāng)前項(xiàng)的值保存當(dāng)前項(xiàng)的值 int i;int i; cout cout x; cin x; ex=0; p=1; i=0; ex=0; p=1; i=0; while (p 1e-6) while (p 1e-6) ex += p; ex += p; +i; +i; p = p p = p * * x / i; x / i; cout e cout e的的 x x 次方等于次方等于: ex endl; ex endl; return 0;return 0;015223xxx) 1()2() 1(*2)2(*1xfxf

3、xfxxfxx#include using namespace std;int main() int mellon, apple, orange; /分別表示西瓜數(shù)、蘋果數(shù)和桔子數(shù)分別表示西瓜數(shù)、蘋果數(shù)和桔子數(shù) for (mellon=1; mellon10; +mellon) / 對(duì)每種可能的西瓜數(shù)對(duì)每種可能的西瓜數(shù) for ( apple=1; apple 50 - 5 * mellon; +apple) /當(dāng)西瓜數(shù)給定后可能的蘋果數(shù)當(dāng)西瓜數(shù)給定后可能的蘋果數(shù) orange = 3*(50-5*mellon-apple); / 剩下的錢全買了桔子剩下的錢全買了桔子 if (mellon+a

4、pple+orange = 100) / 三種水果數(shù)之和是否為三種水果數(shù)之和是否為100 cout mellon: mellon ; cout apple: apple ; cout orange: orange endl; return 0; Mellon:1 apple:18 orange:81Mellon:2 apple:11 orange:87Mellon:3 apple:4 orange:93main() int a, b, c, d; for (a=1; a=4; +a) for (b=1; b=4; +b) if ( a = b) continue; else for (c=1;

5、 c=4; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1 &(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=1) cout a b c d;問題:效率差解決方法:一旦找到答案就應(yīng)該結(jié)束main() int a, b, c, d; bool flag = false; for (a=1; a=4; +a) for (b=1; b=4; +b) if ( a = b) continue; else for (c=1; c=4

6、; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1 &(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=1) cout a b c d; flag = true; break; if (flag) break; if (flag) break;改進(jìn)版1:程序不夠簡(jiǎn)練main() int a, b, c, d; bool flag = false; for (a=1; a=4 & !flag; +a) for (b=1; b=

7、4 & !flag; +b) if ( a = b) continue; else for (c=1; c=4 ; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1 &(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=1) cout a b c d; flag = true; break; 改進(jìn)版2#includeusing namespace std;#define ONEFEN 1#define TWOFEN 2#defi

8、ne FIVEFEN 5#define ONEJIAO 10int main() int money; int onefen = 0, twofen = 0, fivefen = 0, onejiao = 0; cout money; /不斷嘗試每一種硬幣不斷嘗試每一種硬幣 while (money = ONEJIAO) onejiao+; money -= ONEJIAO; while (money = FIVEFEN) fivefen+; money -= FIVEFEN; while (money = TWOFEN) twofen+; money -= TWOFEN; while (money = ONEFEN) onefen+; money -= ONEFEN;/輸出結(jié)果輸出結(jié)果 co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論