经典面试题 不解释 代码附上
/**
* 一个人去买汽水,1块钱买一瓶汽水,3个瓶盖可以
* 换一瓶汽水,2个空瓶也可以换一瓶汽水,
* 问:20块钱能喝多少瓶汽水
* @author tyzhen
*
*/
public class BottleDrink {
static int bottles = 0;//定义空瓶 初始值0
static int caps = 0;//定义瓶盖 初始值0
static int exchanges = 0;//定义汽水 初始值0
public static void main(String[] args) {
int money = 20;
int water = money;
int sum = drink(water);
//int sum = drink1(water,caps,bottles);
System.out.println(sum);
}
public static int drink(int water){
exchanges += bottles/2+caps/3+water;//到目前为止换的汽水数总数
bottles = bottles%2+water;//换完汽水后的空瓶数
caps = caps%3+water;//换完汽水后的瓶盖数
int nextWater = bottles/2+caps/3;//下轮可换汽水
bottles = bottles%2;
caps = caps%3;
if(nextWater>0){//跳出循环条件:空瓶与瓶盖不足以换到汽水
drink(nextWater);
}
return exchanges;
}
}