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

下載本文檔

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

文檔簡介

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

2、ouble ex, x, p;/ex存儲存儲e ex x的值,的值,p p保存當前項的值保存當前項的值 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) / 對每種可能的西瓜數(shù)對每種可能的西瓜數(shù) for ( apple=1; apple 50 - 5 * mellon; +apple) /當西瓜數(shù)給定后可能的蘋果數(shù)當西瓜數(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;問題:效率差解決方法:一旦找到答案就應該結(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 f

6、or (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; if (flag) break; if (flag) break;改進版1:程序不夠簡練main() int a, b, c, d; bool flag = false; for (a=1; a=4 &

7、amp; !flag; +a) for (b=1; b=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; 改進版2#includeusing namespa

8、ce std;#define ONEFEN 1#define TWOFEN 2#define 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é)果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論