折扣最低价

问题:

    书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号01234表示,单独一卷售价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

posted @ 2015-05-08 16:48  嘴角上扬的马先生  阅读(172)  评论(1编辑  收藏  举报