1.题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。设计算法能够计算出读者购买一批书的最低价格。
2.设计思路:
把用户要买的书籍本数除以5来取余,再用余数加上5来单独考虑要买6、7、8、9本时的情况,最后求出折扣最多的情况。以下为这几种情况时的购书价格:
当购书数量为6时,优惠方案为1+5,总价为:38;
当购书数量为7时,优惠方案为2+5,总价为:45.2;
当购书数量为8时,优惠方案为4+4,总价为:51.2;
当购书数量为9时,优惠方案为4+5,总价为:55.6;
3.源代码:
1 #include<iostream.h> 2 void main() 3 { 4 5 int i,num,money,j; 6 cout<<"请输入买书数量:"; 7 cin>>num; 8 i=num%5; 9 j=num/5; 10 switch(i) 11 { 12 case 0: 13 money=j*30; 14 break; 15 case 1: 16 money=j*30+8; 17 break; 18 case 2: 19 money=j*30+2*8*0.95; 20 break; 21 case 3: 22 if(j=0) 23 { 24 money=3*8*0.9; 25 break; 26 } 27 else 28 { 29 money=(j-1)*30+4*8*0.8*2; 30 break; 31 } 32 case 4: 33 money=j*30+4*8*0.8; 34 break; 35 } 36 cout<<"最低价格为"<<money<<"元"<<endl; 37 }
4.结果截图:
5.心得体会:
这道题重要的是得出求解方法与思路,程序编写很简单,但实现出来代码延伸与复用的用处不大,还有待改进。
时间: 2024-11-10 01:00:34