• Harrypotter


    #include<iostream>
    using namespace std;
    
    int main()
    {
        int count,x[5]={0};
        int a,b,c,d;
        cout<<"请输入总数:"<<endl;
        cin>>count;
        a=count/5;
        x[4]=a;
        b=count%5;
        x[b-1]=1;
    
            if(b==3&&b!=count)
            {
                /*a=a-1;
                x[4]=a;
                b=b+5;
                c=c-1;
                a=count/c;
                x[c-1]=a;
                b=count%c;
                x[b-1]=b;*/
    x[4]=x[4]-1;
    x[3]=x[3]+2;


    } cout
    <<"购买单本:"<<x[0]<<""<<endl; cout<<"购买两本:"<<x[1]<<""<<endl; cout<<"购买三本:"<<x[2]<<""<<endl; cout<<"购买四本:"<<x[3]<<""<<endl; cout<<"购买五本:"<<x[4]<<""<<endl; return 0; }

    注释:

    购买数量          1      2      3      4     5

    折扣率(%)    5     10     15    20    25     

    单本折扣(元)   0     0.4   0.8    1.6    2 

    购买数量              6       7        8      9       10    ……

    最优解               5+1    5+2   4+4   5+4   5+5   ……

    可知,买五本单本折扣最大,所以当购买数量小于等于5时,应该优先选择购买不同种类的书

    当购买数量大于5时,应该优先购买五本,可是当购买的的种类的之间距离相差超1时(例如:8=5+3,5-3=2),容易出现错误

    继续向下计算,发现大数的时候也是如此

    所以用总数count做整除,得到购买五本的数量,余数为购买其他数量的书的数

    当二者相差超过1时,商减1,购买5本数量少1,减小差距

  • 相关阅读:
    Apache的Thrift引发的编译思考
    QQ的小秘密
    快速简化Android截屏工作
    Solution of wireless link "PCI unknown" on Centos 7.1
    Java Date Compare
    eclipse集成tomcat日志文件输出配置
    身份证号码验证正则表达式
    curl用法一例 传递代理用户名密码
    HTML 5 placeHolder
    JavaScript(ECMAScript) with 语句
  • 原文地址:https://www.cnblogs.com/fooreveryu/p/5553486.html
Copyright © 2020-2023  润新知