• 书店促销


    一 题目要求:

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

                          本数                    折扣                                   

                                      2                       5%                                    

                                      3                       10%                                    

                                      4                       20%                                

     

                                      5                       25%          

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

    二 设计思想:

      由打折规则可知,1本不打折,2-5本由对应打折规则购买可得最低价,当购买本数大于5时,可以相应转化成购买5,6,7,8,9本来算,比如10=5+5,

    12=5+8,21=5*3+6等,针对5,6,7,8,9情况求得以下最优情况:当数目是5的整数倍时,按统一的75折最便宜.当数目为6时,优惠方案即6=5+3,金额为38。当数目为7时,最优方案7=5+2,金额为45.2。当数目为8时,最优方案为8=4+4,金额为51.2。当数目是9时,最佳方案9=5+4,金额为55.6。所以,综合上述,可以求得最佳购书方案。

    三 代码

    #include<iostream>

    using namespace std;double low_price(double a)

    {    

    double b;    

    int x,y,p;    

    p=(int)a;    

    x=p/5;    

    y=p%5;    

    if(x==0&&y==3) 

    y=-1;    

    switch(y)    

    {    

    case -1:

    b=3*8*0.9;

    break;    

    case 0: 

    b=a*0.75*8;

    break;    

    case 1: 

    b=(a-1)*8*0.75+8;

    break;    

    case 2: b=(a-2)*8*0.75+0.95*2*8; 

    break;;    

    case 3: b=(a-8)*0.75*8+8*0.8*8;break;   

     case 4: b=(a-4)*8*0.75+0.8*4*8; break;    

    }    

    return b;

    }

    void main()

    {   

     double a,b;    

    cout<<"请输入购买书的数目:";

        cin>>a;

        b=low_price(a);

        cout<<"最低优惠价为:"<<b<<endl;}

    四 截图

          

    五 总结

      我在看到这道题目后,首先想到枚举,随着向后枚举时,我发现了规律,所有的情况可以分开讨论,形成了一套完整的设计思路,这道题锻炼了自己的逻辑思维能力。

  • 相关阅读:
    [不断更新中]模板
    Noip 2018 游记
    [luogu3067 USACO12OPEN] 平衡的奶牛群
    [luogu4127 AHOI2009] 同类分布 (数位dp)
    [luogu4571 JSOI2009] 瓶子和燃料 (数论)
    [luogu4056 JSOI2009] 火星藏宝图 (贪心 dp)
    [luogu3573 POI2014] RAJ-Rally (拓扑排序 权值线段树)
    常见的狄利克雷卷积(一篇很好的博客上看到的)
    cz_xuyixuan
    [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT
  • 原文地址:https://www.cnblogs.com/revenge/p/4594986.html
Copyright © 2020-2023  润新知