买书求最大折扣

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了买书求最大折扣相关的知识,希望对你有一定的参考价值。

题目:

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

                               本数                  折扣

                                   2                       5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

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

分析:

通过枚举得出在购买的书为8本是会出现特殊情况,4,4,组合为最便宜的情况,而其他情况都是5+x最便宜

源代码:

#include <iostream>
using namespace std;

int main()
{
    float price;//金额
    int num;//购买数量
    int num_s;//除10的商
    int num_y;//除10的余数
    cout<<"请输入购买的数量:"<<endl;
    cin>>num;

    num_s=num/5;
    num_y=num%5;
    if (num_y==0)//余数为0,则是5的整倍数,
    {
        price=num_s*5*8*0.75;
    } 
    else if (num_y==1)
    {
        price=num_s*5*8*0.75+num_y*8;
    }
    else if(num_y==2)
    {
        price=num_s*5*8*0.75+num_y*8*0.95;
    }
    else if (num_y==3)//余数为3时,出现特殊情况,拿出一个5 ,与3凑成两个4;
    {
        
        if(num_s==0)
        {
            price=3*8*0.1;
        }
        else
        {
            price=(num_s-1)*5*8*0.75+4*8*0.8*2;
        }
    }
    else
    {
        price=num_s*5*8*0.75+num_y*8*0.8;
    }
    cout<<price<<endl;   
}

运行截图:

技术分享

以上是关于买书求最大折扣的主要内容,如果未能解决你的问题,请参考以下文章

课堂练习---最低价格买书

最优买书问题

最优买书问题

课堂练习-买书价格最低

软件工程作业—最优买书问题

求买书的最低费用