题解 | #汽水瓶#
汽水瓶
http://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
if (a == 0) {//如果输入的是0,那么就不需要打印
return;
} else {
System.out.println(myAns(a,0));
}
}
}
/**
* @Param count 手上的所剩空瓶数量
* @Param result 想老板换取得饮料数,初始是0
*/
private static int myAns(int count,int result) {
int ne = count / 3;
int sl = count % 3;
result += ne; //换到的汽水数
sl += ne; //所剩下的空瓶
if ( sl <= 1) { //如果手上剩不到两瓶,那么就没办法借了,直接结束了
return result;
} else if (sl == 2){//如果手上剩两瓶,就向老板借一瓶,凑这样凑上三瓶就可以还上了
return myAns(sl + 1,result);
} else{//如果手上剩的多余两瓶,那么就可以继续向老板换了
return myAns(sl,result);
}
}
}