天天看點

課堂練習-購書問題

書店針對《哈利波特》系列書籍進行促銷活動,一共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 }       

結果截圖:

課堂練習-購書問題

總結:

這次課堂練習考的是對資料的統計發現,然後運用這發現的規律實作程式。