题解 | #汽水瓶#
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
//能喝多少瓶的计数
int emptyBottle = in.nextInt();
//读取空瓶数量
int count = 0;
//表示输入结束,你的程序不应当处理这一行
if(emptyBottle == 0){
break;
}else{
//递归函数
countCoke(emptyBottle, count);
}
}
}
private static void countCoke(int emptyBottle, int count){
//商, 目前空瓶能换的coke, 喝完也能得到空瓶
int quotient = emptyBottle/3;
//余数, 目前换完coke余下的空瓶
int remainder = emptyBottle%3;
//更新喝过的coke
count = count + quotient;
//更新目前的空瓶
emptyBottle = quotient + remainder;
//目前空瓶为1, 无法额外换coke, 借了空瓶也无法换
if(emptyBottle == 1){
System.out.println(count);
//目前空瓶为2或3, 可以额外换1个coke, 2空瓶借空瓶兑换也能换
}else if(emptyBottle == 2 || emptyBottle == 3){
count++;
System.out.println(count);
}else{
//目前的空瓶大于3, 递归调用函数
countCoke(emptyBottle,count);
}
}
}
查看2道真题和解析