天天看点

课堂练习-购书问题

书店针对《哈利波特》系列书籍进行促销活动,一共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 }       

结果截图:

课堂练习-购书问题

总结:

这次课堂练习考的是对数据的统计发现,然后运用这发现的规律实现程序。