题解 | #汽水瓶#递归法
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
import java.util.Scanner;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//本题不排序,新增速度LinkedList > ArrayList
LinkedList<Integer> list=new LinkedList<>();
int inp;
while((inp=in.nextInt())>1){
list.add(toRes(inp));
}
for(int res:list){
System.out.println(res);
}
}
private static int toRes(int num){//利用递归法得到一个输入所得的饮料数
if(num<2){//1个0个没得用
return 0;
}
if(num==2){//借一个=3个,喝完还一个
return 1;
}
int n=0;
if(num%3==1){
n+=1;
}else if(num%3==2){
n+=2;
}
int res=num/3;//不管取模=012,最终都是要商的
n+=res;
return res+toRes(n);
}
}
