题解 | #汽水瓶#
汽水瓶
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); } } }