标签:
一、题目要求
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
要求:
二、设计思路
买书价格最优时,十本以上具有普遍性,所以只需要考虑十本以内买书的价格最优就可以了,其中买一本是没有优惠的,所以每次买的书可以分批次进行,这样才可以每次最优
十本以内具有代表性,这里不再进行算法的实现,直接通过相应的数量对应不同的价格来进行计算。
三、源代码
1 // book.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include"iostream" 6 using namespace std; 7 8 int main() 9 { 10 int num; //购买书的数量 11 double sum1,sum2; //原始价格sum1,总优惠价格sum2 12 double price; //优惠价格 13 int no1,no2; //确定买书所分得批次(每批五本)no1和不足十本的部分no2 14 int a,b; 15 cout<<"请输入你要购买的本数:"; 16 cin>>num; 17 sum1=8*num; 18 no1=num/5; 19 no2=num%5; 20 if(no1%2!=0) 21 { 22 no1=no1-1; 23 no2=no2+5; 24 } 25 switch(no2) 26 { 27 case 0: 28 price=0; 29 a=0;b=0; 30 break; 31 case 1: 32 price=0; 33 a=1;b=0; 34 break; 35 case 2: 36 price=0.8; 37 a=2;b=0; 38 break; 39 case 3: 40 price=2.4; 41 a=2;b=0; 42 break; 43 case 4: 44 price=6.4; 45 a=4;b=0; 46 break; 47 case 5: 48 price=10; 49 a=5;b=0; 50 break; 51 case 6: 52 price=10; 53 a=1;b=5; 54 break; 55 case 7: 56 price=10.8; 57 a=2;b=5; 58 break; 59 case 8: 60 price=12.8; 61 a=b=4; 62 break; 63 case 9: 64 price=16.4; 65 a=4;b=5; 66 break; 67 } 68 sum2=10*no1+price; 69 cout<<"最优价格为:"<<sum1-sum2<<endl; 70 cout<<"购买方案为:第一次购买"<<no1<<"批(每批一整套);"<<"第二次购买"<<a<<"本;"<<"第三次购买"<<b<<"本;"<<endl; 71 return 0; 72 }
四、实验结果
五、实验分析
这次的题目并不是多么有难度,我觉得这次最主要的是体现自己思考问题的方式,怎样才能找到一个更好的解决方法,同一个问题可能有许多种不同的思路,但是我们要确定选择哪种思路,使用哪种解题方法,这才是重要的。实现过程中的问题可以通过学习去客服,但是方法上的问题确实自己思路的体现,找到最优解是一个积累的过程,是要不断的摸索的,并不是只针对某个题,只有摸索的多了,才能够正确的对问题进行规划和分类,这对于团队项目中问题的划分也是有帮助的
标签:
原文地址:http://www.cnblogs.com/zhshto/p/4430104.html