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           

    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  1+5  2+4  

            43.2  38   41

    7本    1+6  2+5   3+4

            46     45.2   47.4

    8本    1+7  2+6  3+5    4+4

           53.2 53.2   51.6      51.6

    9本  1+8   2+7    3+6    4+5 

          59.6   60.4   59.6   55.8

    10 本 5+5

    #include<iostream>
    using namespace std;
    int main()
    {
        double monery;
        int num;
        int shang, yu;
        cout << "请输入购买数量:";
        cin >> num;
        if (num <= 5)
        {
            switch (num)
            {
            case(1) : monery = 8; break;
            case(2) : monery = 16 * 0.95; break;
            case(3) : monery = 24 * 0.9; break;
            case(4) : monery = 32 * 0.8; break;
            case(5) : monery = 30; break;
            default:cout << "输入错误!!" << endl;
            }
        }
        else if (num <= 10)
        {
            switch (num)
            {
            case(6) : monery = 38; break;
            case(7) : monery = 45.2; break;
            case(8) : monery = 51.2; break;
            case(9) : monery = 55.6; break;
            case(10) : monery = 60; break;
            }
        }
        else
        {
            shang = num / 10;
            yu = num % 10;
            switch (yu)
            {
            case(1) : monery = 8; break;
            case(2) : monery = 16 * 0.95; break;
            case(3) : monery = 24 * 0.9; break;
            case(4) : monery = 32 * 0.8; break;
            case(5) : monery = 30; break;
            case(6) : monery = 38; break;
            case(7) : monery = 45.2; break;
            case(8) : monery = 51.2; break;
            case(9) : monery = 55.6; break;
            }
            monery += 60 * shang;
        }
        cout << "购买数量为:" << num << "  应付金额:" << monery << endl;
        return 0;

  • 相关阅读:
    ros结合catkin_make和qtcreator
    构造函数隐式转换
    c语言自动对齐原则
    array数据初始化
    const 作用
    ~scanf()
    c++ set容器排序准则
    设置session,cookies
    JFinalConfig配置
    java重置Timer执行频率
  • 原文地址:https://www.cnblogs.com/lyhao/p/5608129.html
Copyright © 2011-2022 走看看