您的位置:首页 > 其它

买酒

2016-03-02 11:00 253 查看
题目:每瓶啤酒2元,2个空瓶可以兑换一瓶啤酒,4个瓶盖可以兑换一瓶啤酒,问10元钱最多喝多少瓶啤酒?

package com.click369;

public class Test {

// 最开始可以买5瓶啤酒
public static int all = 5;
// 记录剩下的酒瓶数
public static int leftBottle;
// 记录剩下的瓶盖数
public static int leftTop;

public static void main(String[] args) {
all = all + drink(5, 5);
System.out.println("总共能喝:" + all);
System.out.println("剩下酒瓶个数:" + leftBottle);
System.out.println("剩下盖子个数:" + leftTop);
}

/**
* 计算可以兑换多少瓶啤酒
*
* @param bottle
*            现有的酒瓶数
* @param top
*            现有的瓶盖数
* @return 可兑换的啤酒个数
*/
public static int drink(int bottle, int top) {
// 当酒瓶数超过2或者瓶盖数超过4就可以继续兑换啤酒
if (bottle >= 2 || top >= 4) {
leftBottle = (bottle / 2) + (bottle % 2) + (top / 4);
leftTop = (top / 4) + (top % 4) + (bottle / 2);
return (bottle / 2) + (top / 4) + drink(leftBottle, leftTop);
}
return 0;
}

}


运行结果:

总共能喝:15
剩下酒瓶个数:1
剩下盖子个数:3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: