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

    结果截图:

  • 相关阅读:
    【转】很全的TeeChart for .NET中文教程
    对比两个flash金融图表Stock Chart vs AnyStock
    FusionCharts实例大全
    [译]金融图表AnyStock的9个使用技巧
    看懂SqlServer查询计划
    怎样修改MySQL的默认编码
    VS2003+自带水晶报表的打包部署(CS方式)
    ADO.NET 连接池理解
    临时表 & 表变量
    Eclipse 快捷键介绍
  • 原文地址:https://www.cnblogs.com/dgj1314/p/5612731.html
Copyright © 2011-2022 走看看