买书求最大折扣

题目:

书店针对《哈利波特》系列书籍进行促销活动,一共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;
}

运行截图:

时间: 2024-12-15 01:43:46

买书求最大折扣的相关文章

买书求如何获得折扣使价格最低

题目: 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数                  折扣 2                       5% 3                       10% 4                       20% 5                       25% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,

买书折扣问题

1.题目: 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数                    折扣 2                       5% 3                       10% 4                       20% 5                       25% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两

软件工程——买书折扣问题

1.题目 书店针对<哈利波特>系列书籍进行促销活动一共5卷,用编号0.1.2.3.4表示,单独一卷售价八元,具体折扣如下所示: 本书       折扣 2           5% 3          10% 4          15% 5          20% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠.设计算法能够计算出读者购买一批书的最低价格. 2.设计思路 根据题目

4月14号周二课堂练习:买书最优问题

一.问题提出 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数                   折扣 2                       5% 3                       10% 4                       20% 5                       25% 二.题目要求 1.根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣

个人项目——买书

用折后最低价买书 一.程序要求 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数                    折扣 2                       5% 3                       10% 4                       20% 5                       25% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折

编程之美之买书问题

拿到这个问题,我的第一反应是用贪心算法,优先满足不同种类多的,这样打的折扣比价多.但是,看了书中的分析发现,* 我们设定的贪心策略实际上是有问题的, ie 在买 5 + 3 本的时候会出错. 看到这里,书上说可以利用改进的贪心算法,感觉如果换了相应的折扣数量,可能又会有不同的结果了.因而,没有深入的研究下去. 既然,贪心算法不可行,那就用动态规划呗. 这里的动态规划思路很简单不过写起来有些复杂.我们这里用到了5维数组, 光是init 就写了好多. 其实我在写的时候,就在想有什么简单一点的方法可以

课堂练习-买书价格最低

实验背景 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数 折扣 2 5%         3 10%         4 20%            5 25% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠.       设计算法能够计算出读者购买一批书的最低价格. 一.设计思想此问题可以折算为如何取余

买书最低价问题

设计思路 已知书的单价和优惠的规则,那么可以根据计算可以得到以下规律: 买5本书(包含五本)时,买的书不重复是最低价: 买6本书时,买一套(5本)和买1本(任意)是最低价: 买7本书时,买一套(5本)和2本(任意但不重复)是最低价. 买8本书时,任意4本(不重复),各买两本是最低价. 买9本书时,买一套(5本)和4本(任意但不重复)是最低价. 若买书X本: 当买书的数量10本以内,就以上述各情况购买: 若买书数量超过10本,则求X/10是的余数(小于10)和商:此时最低价为(商*五本书是的价格*

最少的钱买书

题目一:买书 有一书店引进了一套书,共有3卷,每卷书定价是60元,书店为了搞促销,推出一个活动,活动如下: 如果单独购买其中一卷,那么可以打9.5折. 如果同时购买两卷不同的,那么可以打9折. 如果同时购买三卷不同的,那么可以打8.5折. 如果小明希望购买第1卷x本,第2卷y本,第3卷z本,那么至少需要多少钱呢?(x.y.z为三个已知整数). 当然,这道题完全可以不用动态规划来解,但是现在我们是要学习动态规划,因此请想想如何用动态规划来做? 答案: 1.过程为一次一次的购买,每一次购买也许只买一