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