一 实验题目:
在节假日的时候,书店都会做促销活动。由于《哈利波特》系列相当畅销,店长决定通过促销活动来回馈读者。在销售《哈利波特》平装本系列中,一共有五卷,用编号0,1,2,3,4来表示。假设每一卷单独销售均需要8欧元。如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多。假设具体的折扣情况如下:
本数 折扣
2 5%
3 10%
4 20%
5 25%
在一份订单中,根据购买的卷数以及本数,就会出现可以应用不同折扣规则的情况。但是,一本书只会应用一个折扣规则。比如,读者一共买了两本卷一,一本卷二。那么,可以享受5%的折扣,另外一本卷一则不能享受折扣。如果有多种折扣,希望能够计算出的总额尽可能的低。要求根据这样的需求,设计算法,能够计算出读者所购买的一批书的最低价格。
二 设计思想:
由题目要求可知:2本 便宜5%,3本 便宜10%,4本 便宜20%,5本 便宜25%。所以1~5本按照每册买一本来买最便宜;6~10本则要看情况计算,6本 按照5册加一本 也就是5*单价*(1-25%)+1*单价;7本则是 5*单价*(1-25%)+2*单价*(1-5%);8本 是4*单价*(1-20%)*2;9本 是4*单价*(1-20%)+5*单价*(1-25%);10本以上整数部分按套买,个数部分则和前面一样。
三 程序代码:
//2016 6 3 //二十划生 课堂练习之最划算的买书方法 #include <iostream> using namespace std; void main() { int num,a,b; double sumprice; cout<<"请输入要买的书的本数:"<<endl; cin>>num; a=num/5; b=num%5; cout<<"最低价格为:"; if(num<=5) { if(num==1) { sumprice=1; } else if(num==2) { sumprice=2*(1-0.05); } else if(num==3) { sumprice=3*(1-0.1); } else if(num==4) { sumprice=4*(1-0.2); } else if(num==5) { sumprice=5*(1-0.25) ; } } else { if(b==0) { sumprice=a*5*(1-0.25); } if(b==1) { sumprice=a*5*(1-0.25)+1; } if(b==2) { sumprice=a*5*(1-0.25)+2*(1-0.05); } if(b==3) { sumprice=(num-8)/5*5*(1-0.25)+4*2*(1-0.2); } if(b==4) { sumprice=a*5*(1-0.25)+4*(1-0.2); } } cout<<sumprice<<endl; }
四 运行结果
五 心得体会
本次的题目比较简单,由于老师在课堂上已经给出了具体的规律,所以较好实现。