• 购书最便宜的方案


    #include <iostream>
    using namespace std;
    
    void LowestPrice(int n){
        
        double lowprice = 0;
        int p ,q;
        p = n/10;
        q = n%10;
        switch(q){
        case 0:lowprice = p*20;break;
        case 1:lowprice = p*20+8;break;
        case 2:lowprice = p*20+8*2*0.95;break;
        case 3:lowprice = p*20+8*3*0.9;break;
        case 4:lowprice = p*20+8*4*0.8;break;
        case 5:lowprice = p*20+8*5*0.75;break;
        case 6:lowprice = p*20+8*5*0.75+8;break;
        case 7:lowprice = p*20+8*5*0.75+8*2*0.95;break;
        case 8:lowprice = p*20+8*4*0.8*2;break;
        case 9:lowprice = p*20+8*5*0.75+8*4*0.8;break;
        }
        cout<<"购买"<<n<<"书的最低价格是:"<< lowprice;
    }
    
    void main(){
       int n;
       cout<<"请输入想买的书的本数:"<<endl;
       cin>>n;
       LowestPrice(n);
       system("pause");
    }

    题目:

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

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

    思路:

    有题目可知,在购买的书的本数n小于10时,2-5本按照对应的折扣进行计算即可,当6<=n<=9时,要考虑如何购买可以使价钱最少。通过计算当n=6时,按照5本一套加上剩下的一本,价钱最少。当n=7时,按照5本一套加上剩下的2本价钱最少,当n=8时,按照4本一套共买两套价钱最少,当n=9时,按照5本一套加上剩下的4本价钱最少。             当在购买的书的本数n大于10时,n除以10,商p余q。整数部分即按照5本一套买2p套,剩下的q则根据上边的2-9进行计算即可

    总结:

    其实这个想法多亏了老师的提醒,讨论6-9使整个计算过程简单了不少然后当大于10时,采用对n除以10取余的方法,此处我采取的是除以10,而不是除以五,除以10得到的余数更明显能够看出是2-9中的那个数,是计算更加简便

  • 相关阅读:
    Object.assign () 和深拷贝
    在关机或重启前,关闭有道云笔记
    OpenSSL生成加密证书.cer和.pfx
    scrcpy 安卓投屏
    C#.NET AES CBC 加密
    华擎B365M ITX ,SSD WIN7 电脑卡顿,4K异常,9代 I7
    华擎B365 BIOS 设置来电启动,来电自启,来电后开机
    打开 gpedit.msc 组策略时弹出错误提示,"找不到资源 string.Advanced_EnableSSL3Fallback ”。
    将手机声音通过蓝牙输入到WIN10电脑
    CSS选择器——cssSelector定位方式详解
  • 原文地址:https://www.cnblogs.com/laozhanghahaha/p/4506982.html
Copyright © 2020-2023  润新知