書店針對《哈利波特》系列書籍進行促銷活動,一共5卷,用編号0、1、2、3、4表示,單獨一卷售價8元, 具體折扣如下所示:
本數 折扣
2 5%
3 10%
4 20%
5 25%
根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書隻會對應一個折扣規則,例如購買了兩本卷1,一本卷2,則可以享受5%的折扣,另外一本卷一則不享受優惠。
設計算法能夠計算出讀者購買一批書的最低價格。
思路:如果購買1-5本就按照原始購買方法算就行,買6本時選擇本數為“5+1”較為優惠,優惠價格為10元,買7本時選擇“5+2”較為實惠,優惠價格為10.8元,買8本時選擇“4+4”較為優惠,優惠價格為12.8元,買9本時選擇“5+4”較為優惠,優惠價格為16.4元,買10本時選擇“5+5”,優惠價格為20;當購買價格超過10本時,根據規律發現,選擇10本十本買,最後根據1-10的本數選擇最優惠方法就能求得最為優惠價格。
代碼:
1 #include<iostream>
2 using namespace std;
3
4 void TheCheapestPrice(int number)
5 {
6 int court=0;
7 double price; //記入10本以内的優惠價格
8 double sum;
9 court=number/10;
10 switch(number%10)
11 {
12 case 0:price=0;break;
13 case 1:price=0;break;
14 case 2:price=0.8;break;
15 case 3:price=2.4;break;
16 case 4:price=6.4;break;
17 case 5:price=10;break;
18 case 6:price=10;break;
19 case 7:price=10.8;break;
20 case 8:price=12.8;break;
21 case 9:price=16.4;break;
22 }
23 sum=number*8-court*20-price;//總價格減去優惠價格
24 cout<<"最低價格為: "<<sum;
25 }
26 int main()
27 {
28 int Book_Number=0;
29 cout<<"請輸入購買《哈利波特》本數: ";
30 cin>>Book_Number;
31 TheCheapestPrice(Book_Number);
32 return 0;
33 }
結果截圖:
總結:
這次課堂練習考的是對資料的統計發現,然後運用這發現的規律實作程式。