购书问题

一、题目要求

  书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:

                                  本数                    折扣

                                   2                       5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。设计算法能够计算出读者购买一批书的最低价格。

二、思路

  根据分析这个算法最核心的问题是解决6-9本书的购买方法。1-5本只要按一套买就能享受最大优惠。10本书以上时可化简为10本书以下的情况,如买11本和买6本是一样的。由计算得:

6本时5+1,

7本时5+2,

8本时4+4

9本时5+4

是最优惠的。

三、代码

 1 #include<iostream.h>
 2 void main()
 3 {
 4 while
 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 }

四、截图

五、总结

  写这个程序前好好分析了一下他的算法,因此写起来思路很清晰,也很顺利,因此算法很重要。

posted on 2015-04-15 17:25  梁世豪  阅读(147)  评论(0编辑  收藏  举报

导航