课堂练习之买书问题
一、題目
? ? 在節(jié)假日的時(shí)候,書店一般都會(huì)做促銷活動(dòng)。由于《哈利波特》系列相當(dāng)暢銷,店長決定通過促銷活動(dòng)來回饋?zhàn)x者。在銷售的《哈利波特》平裝本系列中,一共有五 卷,用編號0, 1, 2, 3, 4來表示。假設(shè)每一卷單獨(dú)銷售均需要8歐元。如果讀者一次購買不同的兩卷,就可以扣除5%的費(fèi)用,三卷則更多。假設(shè)具體折扣的情況如下:
本數(shù)????? ??? 折扣
2??????? ? 5%
3??????? ? 10%
4?????? ??? 20%
5?????? ??? 25%
? ? 在一份訂單中,根據(jù)購買的卷數(shù)以及本書,就會(huì)出現(xiàn)可以應(yīng)用不同折扣規(guī)則的情況。但是,一本書只會(huì)應(yīng)用一個(gè)折扣規(guī)則。比如,讀者一共買了兩本卷一,一本卷二。那么,可以享受到5%的折扣。另外一本卷一則不能享受折扣。如果有多種折扣,希望能夠計(jì)算出的總額盡可能的低。
要求根據(jù)這樣的需求,設(shè)計(jì)出算法,能夠計(jì)算出讀者所購買一批書的最低價(jià)格。
二、思路分析
在小于5本的情況下,直接按折扣買就好了:
2 ?????????5%
3???????? 10%
4???????? 20%
5???????? 25%
在大于5本的情況下,買法如下(對應(yīng)折扣=本數(shù)*折扣):
本數(shù)????? 可能的分解本數(shù) ???? 對應(yīng)的折扣
6 =5+1 ?? 1.25
7 =5+2 1.35
8 =4+4 1.6
9 =5+4 2.05
10 =5+5 ? ? ? ? ? ? ?2.5
在大于10本的情況下,可以分解為以上小于10本的情況來計(jì)算。
設(shè)n為輸入的書本數(shù),當(dāng)(n%5!=3)成立時(shí),則對應(yīng)上面的6,7,9三種折扣,當(dāng)(n%5==3&&n!=3)成立時(shí),則對應(yīng)上面的8的折扣。
?
三、程序源碼
1 #include<iostream.h> 2 void main() 3 { 4 double b,sum; 5 int a,i,c; 6 cout<<"*********書店促銷*********"<<endl; 7 cout<<"****本數(shù)********折扣******"<<endl; 8 cout<<"***** 2 ******** 5% ******"<<endl; 9 cout<<"***** 3 ******** 10% ******"<<endl; 10 cout<<"***** 4 ******** 20% ******"<<endl; 11 cout<<"***** 5 ******** 25% ******"<<endl; 12 cout<<"***************************"<<endl; 13 cout<<"請輸入要購買的書的數(shù)目:"; 14 cin>>i; 15 if(i%5!=3) 16 { 17 a=i/5; 18 b=30*a; 19 c=i%5; 20 if(c==0) 21 { 22 sum=b; 23 } 24 if(c==1) 25 { 26 sum=b+8; 27 } 28 else if(c==2) 29 { 30 sum=b+16*0.95; 31 } 32 else if(c==3) 33 { 34 sum=b+24*0.9; 35 } 36 else if(c==4) 37 { 38 sum=b+32*0.8; 39 } 40 41 } 42 else if(i==3) 43 { 44 sum=24*0.9; 45 } 46 else if(i%5==3&&i!=3) 47 { 48 a=i/5; 49 b=30*(a-1); 50 c=i%5; 51 sum=b+32*0.8*2; 52 } 53 cout<<"最劃算的價(jià)格為:"<<sum<<endl; 54 }?
四、運(yùn)行截圖
五、結(jié)論與體會(huì)
? ? 經(jīng)過查閱資料,我知道了這個(gè)題目的算法是貪心算法,網(wǎng)上介紹了很多關(guān)于貪心算法,也有很多的類似題目,通過本次課堂練習(xí),基本了解了這個(gè)題目的意思和解決辦法,
但是,還是有很多地方需要自己去學(xué)習(xí),希望以后能夠?qū)懗龈玫乃惴ń鉀Q這類問題。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yuji5656/p/4428318.html
總結(jié)
- 上一篇: 迷你世界楠木树叶在哪找(24期迷你世界一
- 下一篇: 荣耀20pro顶部是什么(荣耀官网荣耀手