zoukankan      html  css  js  c++  java
  • 购书策略

    题目:

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

                                         本数                  折扣    

                                           2                    5%

                                           3                    10%

                                           4                    20%

                                           5                    25%

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

    设计思路:

                列举

    本数 价钱                                       原价         降价

    1     8                                            8           0

    2     16-16*%5 =15.2                    16          0.8

    3     3*8-3*8*%10  =21.6              24          2.4

    4     32-32*%20 =25.8                   32          6.4

    5     40-40*%25 =30                     40          10

    本数     策略       价钱
     6       3+3        43.2                  
     6       1+5        38
     6       2+4        41

    本数     策略       价钱
     7       1+6        46                  
     7       2+5        45.2
     7       3+4        47.4

    本数     策略      价钱
     8       1+7        53.2                  
     8       2+6        53.2
     8       3+5        51.6
     8       4+4        51.6

     本数     策略      价钱
     9       1+8        59.6                
     9       2+7        60.4
     9       3+6        59.6
     9       4+5        55.8

    根据上述分析,可知对于总的购买数量count,可以以10本分组,X=count/10;Y=count%10(求余);总钱数=X*60+根据Y获得的策略价钱;

    代码:

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int x = 0, y = 0;        //x:书的数目,y:余数
        double money;            //购书金额
        cout << "输入图书的数量:";
        cin >> x;
    
        y = x % 5;
        if (y == 0)
            money = (x / 5)*(5 * 8)*0.75;
        else if (y == 1)
            money = (x - y) / 5 * (5 * 8)*0.75 + y * 8;
        else if (y == 2)
            money = (x - y) / 5 * (5 * 8)*0.75 + y * 8 * 0.95;
        else if (y == 3)
        {
            if (x == 3)
                money = 21.6;
            else
                money = (x - 8) / 5 * (5 * 8)*0.75 + 51.2;
        }
        else
            money = (x - y) / 5 * (5 * 8)*0.75 + y * 8 * 0.8;
        cout << "最低价格是:" << money << endl;
        return 0;
    }

    结果截图:

    总结:本次的题目不是很难,主要是总结归纳,寻找规律。

  • 相关阅读:
    三大主流负载均衡软件对比(LVS+Nginx+HAproxy)
    nginx 提示the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
    centos安装nginx并配置SSL证书
    hadoop创建目录文件失败
    The server time zone value 'EDT' is unrecognized or represents more than one time zone.
    脚本启动SpringBoot(jar)
    centos做免密登录
    数据库远程连接配置
    Bash 快捷键
    TCP三次握手四次断开
  • 原文地址:https://www.cnblogs.com/me-tts/p/5569335.html
Copyright © 2011-2022 走看看