题目: 某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。 小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。 数据范围:输入的正整数满足 1 ≤ n ≤ 100 注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。 输入例子: 3 10 81 0 输出例子: 1 5 40 例子说明: 样例 1 解释:用三个空瓶换一瓶汽水,剩一个空瓶无法继续交换 样例 2 解释:用九个空瓶换三瓶汽水,剩四个空瓶再用三个空瓶换一瓶汽水,剩两个空瓶,向老板借一个空瓶再用三个空瓶换一瓶汽水喝完得一个空瓶还给老板
解题方案一:
public static Integer getNum(Integer num){
if (num <= 1){
return 0;
}
if (num == 2){
return 1;
}
int count = 0;
while (true){
int i = num / 3;
count += i;
num = i + (num % 3);
if (num <= 1){
break;
}
if (num == 2){
count += 1;
break;
}
}
return count;
}
上面过程复杂了,看方案二
解题方案二:
public static Integer getNum(Integer num){
return num/2;
}