• 最优购书方案的问题


    题目要求:

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

                                   本数                  折扣

                                    2                       5%

                                    3                       10%

                                    4                       20%

                                    5                       25%

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

    设计思想:

    题目的关键是解决当购买6、7、8、9本时应如何购买。经计算
    6本时:1本+5本最优;
    7本时:2本+5本最优;
    8本时:4本+4本最优;
    9本时:4本+5本最优。
    1-5本时不用特殊考虑,其他本数时将其转换为6-9本的情况处理。即将本数对10求余,余数大于5则将求余结果带入6-9本情况中,同时计算减去余数后包含几个5;
    余数小于五则直接计算减去余数后包含几个5,再加上余数的买书计算结果。
     
     
    代码:
    #include<iostream>
    using namespace std;
     
    void main()
    {
    	int i,n,j;
    	double sum;
    	cout<<"请输入需要购买书的数量:";
    	cin>>i;
    
    	n=i/10;
    	j=i%10;
    
    	sum=n*60;
        switch(j)
    	{
    
    	case 1: { sum=sum+8; cout<<"可以分为"<<n*2<<"个5本,和"<<1<<"个1本"<<"价格最低为"<<sum<<endl;break;}
    
    	case 2: { sum=sum+15.2; cout<<"可以分为"<<n*2<<"个5本,和"<<1<<"个2本"<<"价格最低为"<<sum<<endl;break;}
    
            case 3: { sum=sum+21.6; cout<<"可以分为"<<n*2<<"个5本,和"<<1<<"个3本"<<"价格最低为"<<sum<<endl;break;}
    			
    	case 4: { sum=sum+25.6; cout<<"可以分为"<<n*2<<"个5本,和"<<1<<"个4本"<<"价格最低为"<<sum<<endl;break;}
    
    	case 5: { sum=sum+30; cout<<"可以分为"<<n*2+1<<"个5本"<<"价格最低为"<<sum<<endl;break;}
    
    	case 6: { sum=sum+38; cout<<"可以分为"<<n*2+1<<"个5本,和"<<1<<"个1本"<<"价格最低为"<<sum<<endl;break;}
    
    	case 7: { sum=sum+45.2; cout<<"可以分为"<<n*2+1<<"个5本,和"<<1<<"个2本"<<"价格最低为"<<sum<<endl;break;}
    
            case 8: { sum=sum+51.2; cout<<"可以分为"<<n*2<<"个5本,和"<<2<<"个4本"<<"价格最低为"<<sum<<endl;break;}
    
    	case 9: { sum=sum+55.6; cout<<"可以分为"<<n*2+1<<"个5本,和"<<1<<"个4本"<<"价格最低为"<<sum<<endl;break;}
    
    	case 0: { sum=sum; cout<<"可以分为"<<n*2<<"个5本"<<"价格最低为"<<sum<<endl;break;}
    
    	}
    
    }
    

    运行结果:

  • 相关阅读:
    面向对象设计原则
    简单工厂模式和策略模式结合使用php
    lua string
    js.ajax优缺点,工作流程
    深入理解JavaScript是如何实现继承的
    js中哈希表的几种用法总结
    js,indexOf()、lastIndexOf()
    js获取字符串字节数方法小结
    JS(JavaScript)插入节点的方法appendChild与insertBefore
    js中的this关键字详解
  • 原文地址:https://www.cnblogs.com/tyyhph/p/5543296.html
Copyright © 2020-2023  润新知