zoukankan      html  css  js  c++  java
  • 购书问题

    题目:

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

                                     本数                    折扣                                   

                                      2                       5%                                   

                                      3                       10%                                   

                                      4                       20%                                   

                                      5                       25%

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

    思路:

    通过计算6-10本方案容易总结出规律,即当买的本书为8时应4+4方案,其他都是5+1/2/4/5模式方案最佳,进而得出当购买图书大于5本且余数为3时采用5的倍数加8方案购买,其他为5的倍数加余数方案。

    代码:

    #include <iostream>
    using namespace std;
    
    void main()
    {
    	int a,b,c;
    	double d;
    	cout<<"请输入要购买的书数: ";
    	cin>>a;
    	b=a%5;
    	c=a/5;
    	if(b==0)
    		d=c*5*8*0.75;
    	if(b==1)
    		d=c*5*8*0.75+b*8;
    	if(b==2)
    		d=c*8*5*0.75+b*8*0.95;
    	if(b==3&&a>5)
    		d=(c-1)*5*8*0.75+4*8*0.8*2;
    	if(b==3&&a<5)
    		d=3*8*0.9;
    	if(b==4)
    		d=c*5*8*0.75+b*0.8*8;
    	cout<<"最少钱数为:"<<d<<endl;
    }
    

      

    截图:

    总结:

    本次作业相对简单但考察我们发现规律的能力,通过本次的作业可以让我们学到好多的题目存在它相应的运算规律,当我们遇到常规方法解决不了的问题时可以观察题目的规律。是否能用找规律求解的的方法解决。

  • 相关阅读:
    Android之动态图片
    Java之简单图形面积计算
    Java之姐妹素数
    Java之经典Student问题2
    数据库事务四大特性
    TCP/IP分层
    海量数据问题处理办法
    36个常见java面试题
    【19】【滑动窗口】【栽跟头】最长不重复子字符串
    一些面试题
  • 原文地址:https://www.cnblogs.com/lingxi/p/4492020.html
Copyright © 2011-2022 走看看