哈利波特书店促销

一、题目要求    

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

                               本数                  折扣

                                   2                       5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

设计算法能够计算出读者购买一批书的最低价格。

要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。

二、设计思想

 首先前5本书的折扣肯定是全部直接买折扣最低。然后从第6本到第9本时价格最低为:

  第六本:5加1

  第七本:5加2

  第八本:4加4(特殊)

  第九本:5加4

所以只需要将所需要买的书除以10之后,然后将余数和这几个相比较,分为0~5,6~9两种大情况,写好分配策略。最特殊的自然是8本的时候,然后在计算价格就可以了。

三、代码实现

//哈利波特书店促销 王文奇 20132980 2016/5/31
#include<iostream>
using namespace std;

int main()
{
    int num=1, rem;//数量和余数
    float price;//价格
    float discount[] = { 1, 1, 0.95, 0.9, 0.8, 0.75 };//折扣

    while (num>0)  //为0时跳出
    {
        cout << "请输入要购买的本数(按0结束):";
        cin >> num;
        rem = num % 10;//本数除10取余
        if (rem>5)  //余数大于5时
        {
            if (rem == 8)  //8本用4+4更便宜
            {
                price = (num / 10) * 2 * 30 + 4* 8 * 0.8 * 2;
                cout << "整套购买" << (num / 10) * 2 << "套," << "再购买两套,每套随意选四本不同的书,共" << price << "元" << endl;
            }
            else  //其他6,7,9都是5本+剩下的更便宜
            {
                price = ((num / 10) * 2 + 1) * 30 + num % 5 * 8 * discount[num % 5];
                cout << "整套购买" << (num / 10) * 2 + 1 << "套," << "再随意购买" << num % 5 << "本不同的书,共" << price << "元" << endl;
            }

        }
        else  //余数为0,1,2,3,4,5时
        {
            if (rem == 0 || rem == 5)  //0,5直接买整套
            {
                price = (num / 5) * 30;
                cout << "整套购买" << num / 5 << "套,共" << price << "元" << endl;
            }
            else  //1,2,3,4就买整套,剩下的直接买
            {
                if (num > 5)
                {
                    price = (num / 5) * 30 + num % 5 * 8 * discount[num % 5];
                    cout << "整套购买" << num / 5 << "套," << "再随意购买" << num % 5 << "本不同的书,共" << price << "元" << endl;
                }
                else
                {
                    price = num % 5 * 8 * discount[num % 5];
                    cout << "随意购买" << num % 5 << "本不同的书,共" << price << "元" << endl;
                }
            }
        }

        cout << endl;
    }

    return 0;
}

四、实现截图

五、个人总结

      其实,这次并没有想象的那么难,只要掌握了规律,一切问题就迎刃而解了。

时间: 2024-08-02 17:37:05

哈利波特书店促销的相关文章

书店促销问题

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

书店促销活动

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

书店促销优惠

一.题目 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示:                               本数                  折扣                                   2                       5%                                   3                       10%        

书店促销

设计思想: 折扣            付款 1        0                 8 2        0.05            8*0.95 3        0.10            8*0.9 4        0.20            8*0.8 5        0.25            8*0.75 1本无折扣 2本2*8*0.95 3本3*8*0.9 4本4*8*0.8 5本5*8*0.75 6本 5+1 7本 5+2 8本 4+4 而不是

假装很努力,是年轻人的典型幼稚病。(我也有这种问题,改变就是好事。)

假装很努力,是年轻人的典型幼稚病 引用于:http://www.jianshu.com/p/7d38e84c7ca8?utm_campaign=maleskine&utm_content=note&utm_medium=pc_all_hots&utm_source=recommendation 作者 槽值 关注 这种病我也有,所以要时刻警惕自己,改变就是好事. 以前看<打工仔买房记>时,总感觉男主角武诚治在上司那里受尽刁难. 上司派他去买便当,做杂务,武诚治受不了领导的

《哈利波特》购书最低折扣

·书店针对<哈利波特>系列书籍进行促销活动,一共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% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,

《哈利波特》最低折扣

·书店针对<哈利波特>系列书籍进行促销活动,一共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% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷