• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
野野
博客园    首页    新随笔    联系   管理    订阅  订阅
最优购书方案的问题

题目要求:

书店针对《哈利波特》系列书籍进行促销活动,一共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;}

	}

}

运行结果:

 

posted on 2016-05-30 17:36  野野  阅读(340)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3