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;
    }

    结果截图:

  • 相关阅读:
    Structured Streaming watermark总结
    技术实践第三期|HashTag在Redis集群环境下的使用
    元宇宙带来沉浸式智能登录?你学会了吗?
    技术实践第一期|友盟+开发者平台Node.js重构之路
    2021年度友盟+ APP消息推送白皮书:工作日68点通勤时间消息送达率每日最高
    技术实践第二期|Flutter异常捕获
    注意啦!还没有支持64位系统的App开发者,务必在12月底前完成这件事!
    一位大牛对于写技术博客的一些建议
    国内常用源开发环境换源(flutter换源,python换源,Linux换源,npm换源)
    初识Socket通讯编程(一)
  • 原文地址:https://www.cnblogs.com/dgj1314/p/5612731.html
Copyright © 2011-2022 走看看