Acm - 隔壁老王买酒问题
2015-11-30 20:58
225 查看
1.问题描述
隔壁老王到酒庄买酒 , 小二说:我们正在进行优惠活动,每瓶酒2元,2个空瓶换1瓶,4个瓶盖换1瓶,问20块你总共喝多少瓶?2.解析
以10元为例分析10块 5瓶 5空瓶 5个盖子 :
1)5个盖子换1瓶 :2个盖子 6个空瓶 ,总数 6 ;
2)6个空瓶换3瓶 : 5个盖子 , 3个空瓶 ,总数 9;
3)5个盖子换1瓶 : 2个盖子 ,4个空瓶 ,总数 10;
4)4个空瓶换2瓶 : 4个盖子 ,2个空瓶,总数 12;
5)4个盖子换1瓶 : 1个盖子 ,3个瓶子,总数 13 ;
6)3个空瓶换1瓶 : 2个盖子 ,2个空瓶,总数 14 ;
7)2个空瓶换1瓶 : 3个盖子 ,1个空瓶,总数 15 ;
3.Java实现
private static void getAll(int money){ int all=money/2; int gai=all,ping=all; while(true){ //判断盖 int gall=gai/4; ping+=gall; all+=gall; //剩下的盖子 gai=gai%4+gall; //判断瓶 int pall=ping/2; gai+=pall; all+=pall; //剩下的瓶子 ping=ping%2+pall; //结束语句 if(gai<4&&ping<2) break; } System.out.println("可以喝总瓶数 : "+all+" 瓶"); }
结果 :
输入 : 20
输出 : 35
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#获取关键字附近文字算法实例