zoukankan      html  css  js  c++  java
  • 结对开发 《哈利波特》买书最实惠方案设计

    一、题目要求

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

                                   本数                  折扣

                                       2                       5%

                                       3                       10%

                                       4                       20%

                                       5                       25%

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

      要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。(截止日期2015-4-15晚18:00)

    二、设计思想

      首先注意到小于5本书的时候,套用现有的优惠条件就是最优惠的方案;

      如果书的数目大于10本,此时可以简化成买几个5本和一次6到10本这样的方案来达到最优惠的目的;  

      对6~10本进行简单的计算算出:

      6本:分解成5+1本;总价为:30+8元

        或分解成4+2本;总价为:25.6+15.2元

        或分解成3+3本;总价为:21.6+21.6元

        或分解成3+2+1

        或分解成2+2+2等

        可以看出5+1本最划算;

      7本:分解成5+2本;总价为:30+15.2元

          或分解成4+3本;总价为:21.6+25.6元

          或分解成2+2+3

         或分解成2+2+2+1等

        可以看出5+2本最划算;

      8本:分解成5+3本;总价为:30+21.6元

        或分解成4+4本;总价为:25.6+25.6元

        或分解成3+2+3

        或分解成2+2+2+2等

        可以看出4+4本最划算

      9本:分解成5+4本;总价为:30+25.6元

        或分解4+4+1

        或分解成3+3+3

        等

        此时为最划算(只有这一种情况)

      10本:买两个5本就行;

    三、源代码

    #include <iostream.h>
    #include <conio.h>
    int main(void)
    {
    	int n;
    	cout<<"请输入要买几本书?"<<endl;
    	cin>>n;
    	if(n<6)
    	{
    		cout<<"请重新输入大于5的书目:";
    		cin>>n;
    	}
    	int a=n%5;
    	int b=n/5;
    	switch(a)
    	{
    		case 1:
    			cout<<"您先买"<<b*5<<"本书,"<<"再买1本书最划算"<<endl;
    			cout<<"总价为:"<<b*30+8<<"元";
    			break;
    		case 2:
    			cout<<"您先买"<<b*5<<"本书,"<<"再买2本书最划算"<<endl;
    			cout<<"总价为:"<<b*30+15.2<<"元";
    			break;
    		case 3:
    			cout<<"您先买"<<(b-1)*5<<"本书,"<<"再买两次4本书最划算"<<endl;
    			cout<<"总价为:"<<(b-1)*30+51.2<<"元";
    			break;
    		case 4:
    			cout<<"您先买"<<b*5<<"本书,"<<"再买4本书最划算"<<endl;
    			cout<<"总价为:"<<b*30+25.6<<"元";
    			break;
    		case 0:
    			cout<<"您直接买"<<b*5<<"本书最划算"<<endl;
    			cout<<"总价为:"<<b*30<<"元";
    			break;
    		
    	}
    
    	//继续吗?
    	int con;
    	cout<<endl<<"继续吗?是输入1,否输入0:";
    	cin>>con;
    	if(con==1)
    	{
    		main();
    	}
    	else
    	{
    		return 0;
    	}
    	getch();
    	return;
    }
    

       

    四、结果截图

    五、总结

    我的队友:胡顺利

    队友特点,想法多,思路复杂;

    两人一起开发短短的十几分钟就能对一个问题进行较全面的分析,并生成一个估计可行的方案,能够很快的进行开发。

     

  • 相关阅读:
    hadoop 2.5.1 、Hadoop 2.7 Hadoop 2.6
    二 JDK + mysql + yum + rpm
    一 SSH 无密码登陆 & Linux防火墙 & SELinux关闭
    ZooKeeper 配置注意事项 zoo.cfg
    ZooKeeper 特性
    分布式锁
    悲观锁和乐观锁
    windows上配置mysql主从复制
    C# 同步调用、异步调用、异步回调
    C#方法回调
  • 原文地址:https://www.cnblogs.com/zhaixing/p/4425880.html
Copyright © 2011-2022 走看看