折扣最低价
问题:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表
设计思想:
先计算哪种是最便宜的,然后再进行代码实现;
在代码实现中,可以将分为好几种情况,进行分类讨论,用if语句和switch语句实现:
代码实现:
#include<iostream>
using namespace std;
void main()
{ int qty,n;
cout<<"请输入要买的书本的个数:"<<endl;
cin>>qty;
if(qty<=5)
switch(qty)
{
case 0:
cout<<"输入错误,请重新输入!";break;
cin>>qty;
case 1:
cout<<"书的价格为;8元";break;
case 2:
cout<<"书的价格为:.2,降价:.8元";break;
case 3:
cout<<"书的价格为:.6,降价:.4";break;
case 4:
cout<<"书的价格为:.2,降价:.8";break;
case 5:
cout<<"书的价格为:,降价:";break;
}
else
{
n=qty/5;
switch(qty%5)
{ case 0:
cout<<"书的价格为:"<<n*5*8*0.75;break;
case 1:
cout<<"书的价格为:"<<n*5*8*0.75+8;break;
case 2:
cout<<"书的价格为:"<<n*5*8*0.75+2*8*0.95;break;
case 3:
cout<<"书的价格为:"<<(n-1)*5*8*0.75+8*8*0.8;break;
case 4:
cout<<"书的价格为:"<<n*5*8*0.95+4*8*0.75;break;
}
}
}
实现截图:
个人总结:
这道题的做法就是找到其中的规律,找到其中的特殊点,就ok了