题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。(截止日期2016-6-3晚18:00)
设计思路:通过列出购买1~10书最小花费是的购买形式,找到相应的规律:5本以下购买不同的数最优惠,6本(1,5)7本(2,5)8本(4,4)9本(4,5)10本(5,5)
代码实现:
//陈昌 20143051
// 2016.5.30 哈利波特 促销书籍
#include<iostream>
using namespace std;
void main()
{
double monery;
int num;
int shang,yu;
cout<<"请输入购买数量:";
cin>>num;
if(num<=5)
{
switch(num)
{
case(1): monery=8;break;
case(2): monery=16*0.95;break;
case(3): monery=24*0.9;break;
case(4): monery=32*0.8;break;
case(5): monery=30;break;
default:cout<<"输入错误!!"<<endl;
}
}
else if(num<=10)
{
switch(num)
{
case(6): monery=38;break;
case(7): monery=45.2;break;
case(8): monery=51.2;break;
case(9): monery=55.6;break;
case(10): monery=60;break;
}
}
else
{
shang = num / 10;
yu = num % 10;
switch(yu)
{
case(1): monery=8;break;
case(2): monery=16*0.95;break;
case(3): monery=24*0.9;break;
case(4): monery=32*0.8;break;
case(5): monery=30;break;
case(6): monery=38;break;
case(7): monery=45.2;break;
case(8): monery=51.2;break;
case(9): monery=55.6;break;
}
monery +=60*shang;
}
cout<<"购买数量为:"<<num<<" 应付金额:"<<monery<<endl;
}
实现截图:
个人总结:
列出各种可能,找寻相关的规律