三个空瓶子能换一瓶水,可以找老板借瓶子,但是必须得还,随机传入一个空瓶子数量n,最多喝几瓶水?
直接上代码
/**
* @author ice_cola
* @version 1.0
*/
public class Test {
private int sum = 0; // 喝水的次数
public static void main(String[] args) {
Test t = new Test();
t.drink(1000);
System.out.println(t.sum);
}
public void drink(int count){ // 空瓶个数是 count
// 这轮的空瓶 可以换几瓶水?
int residue = (count) / 3 ;
// 开始喝水
sum += residue; // 添加喝水的次数
// 本轮 剩余空瓶重置 = 喝完水的空瓶 + 没有兑换的空瓶;
int rest = residue + count - residue*3 ;
// 开始再次喝水,3个空瓶子换一个空瓶,在加上上一轮剩余的空瓶数量
if (rest >= 3){
drink( rest);
}else if(rest == 2){ // 当还有 2 个空瓶的时候,可以借一个空瓶喝完了睡还回去
drink( rest + 1);
}
// 当空瓶 1 个的时候借了换不了
}
}
检查方法, 三个空瓶 等于 一个空瓶 + 可以喝的水,所以 n 个空瓶可以喝 n/2 瓶水(向下取整)