书店针对《哈利波特》系列书籍进行促销活动,一共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 }
结果截图:
总结:
这次课堂练习考的是对数据的统计发现,然后运用这发现的规律实现程序。