• 如何买到更便宜的书


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

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

    设计代码

    #include<iostream>
    using  namespace  std;

    void main()
    {
     int  a,b,c;
     double  price;
     cout<<"请输入要买书的本数:";
     cin>>a;
     b=a/10;
     c=a%10;
     switch(c)
     {
        price=0;
        case 0:
        price=60*b;
        break;
        case 1:
        price=60*b+8;
           break;
        case 2:
           price=60*b+15.2;
           break;
        case 3:
        price=60*b+21.6;
           break;
        case 4:
           price=60*b+25.6;
           break;
        case 5:
        price=60*b+30;
           break;
        case 6:
           price=60*b+38;
           break;
        case 7:
        price=60*b+41.2;
           break;
        case 8:
           price=60*b+51.2;
           break;
        case 9:
        price=60*b+55.6;
           break;
     }
     cout<<"需要最少的钱为:"<<price;
    }

    思路:从买一本开始算,一直算到第十本,就可以知道1-10 本中最便宜的方案,超过十本之后你在慢慢仔细去算,就可以发现他们其实就是前面十本以内的搭配,例如11本就是5+5+1,21本就是5+5+5+5+1,这样就可以把算法转换到十本以内来计算。

    总结:switch语句早早的忘光了,原来在case后面是:而不是;还有break的作用真的很大,我第一次有一个地方没有加break,导致10笨的时候算到是68而不是60找了好久这个错误才找到,学会了一个知识点。

  • 相关阅读:
    【转】用Linux命令行获取本机外网IP地址
    【转】5 Best Place to Learn Linux – Linux Tutorial Sites
    【转】linux shell 逻辑运算符、逻辑表达式详解
    ftp
    修改/创建计算机用户名、密码
    SCRIPT429: Automation 服务器不能创建对象
    Tomcat 加载外部dll时如何配置
    查看电脑MAC地址
    访问windows共享无法分配内存问题解决
    打包
  • 原文地址:https://www.cnblogs.com/jump/p/4504716.html
Copyright © 2020-2023  润新知