zoukankan      html  css  js  c++  java
  • 课堂练习_买书的最低价钱

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

                                   本数                   折扣

                                       2                       5%

                                       3                       10%

                                       4                       20%

                                       5                       25%

        根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,
      例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
        设计算法能够计算出读者购买一批书的最低价格。
    二、 解决思想
        首先,根据输入的课本的数目n来判断该用什么购买方案。且可知,在n>10的情况下,p = n/10,q = n%10,
      p组5本的书可享受最高的优惠,再根据计算得出q从0~9的最佳的解决方案,即可算出最高的优惠。
    三、代码
      
    // harry.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include <stdio.h>
    #define M 8
    int main(int argc, char* argv[])
    {
        int num;
        int p,q;
        float Money;
        printf("请输入要买的书的本书:");
        scanf("%d",&num);
        p = num/10;
        q = num%10;
        switch(q)
        {
        case 0:
            Money = 2*p*M*0.75*5;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 1:
            Money = 2*p*M*0.75*5+M;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 2:
            Money = 2*p*M*0.75*5+p*M*0.95;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 3:
            Money = 2*p*M*0.75*5+p*M*0.9;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 4:
            Money = 2*p*M*0.75*5+p*M*0.8;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 5:
            Money = 2*p*M*0.75*5+p*M*0.75;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 6:
            Money = (2*p+1)*M*5*0.75+M;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 7:
            Money = (2*p+1)*M*5*0.75+2*M*0.95;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 8:
            Money = 2*p*M*5*0.75+4*M*0.8*2;
            printf("最低价钱%.2f
    ",Money);
            break;
        case 9:
            Money = (2*p+1)*M*5*0.75+4*M*0.8;
            printf("最低价钱%.2f
    ",Money);
            break;
        default:
            printf("error!
    ");
        }
        return 0;
    }

    四、运行结果

      

    五、总结

        在本次的实现过程总,首先对于输入的书的数量加以分析(如解决思想中所述),对于p,只需将其根据折扣,然后计算得知,

      而对于q则不同,当q∈(1,5)时,可根据相应的折扣予以计算输出,当q∈(6,9)时,初q = 8时分成4本的两组,其他的均由

      一个5本和q-5本组成,这样可使折扣达到最大。在输出时,根据价格的通常表示方法,定义一个float型的Money,然后输出小数点后

      的两位即可。其方法为printf(“%.2f”,Money);。

  • 相关阅读:
    判断鼠标在按钮区域上面
    在MFC下绘制直线,使用橡皮筋技术,可以使直线效果跟随鼠标移
    三缓冲
    MFC--自己优化滚动条的双缓冲绘图方法
    MFC视图切换大全总结
    各种线程:事件、互斥量、信号量、临界区 的用法,我自己做的,有用,附件里面有,博客附件里面有
    http://www.cctry.com/forum.php?mod=viewthread&tid=800&reltid=4131&pre_thread_id=0&pre_pos=3&ext=
    关于Mac下pycharm无法调用摄像头权限的问题
    终于理解清楚attention,利用attention对黄金价格进行预测
    tensorboard在colab中的实现
  • 原文地址:https://www.cnblogs.com/littlechar/p/4425888.html
Copyright © 2011-2022 走看看