学了递归,我觉得这是个神器,当我们传入的值会产生返回值和新的传入值的时候可以用递归。
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
public static void main(String[] args) {
int num = 25;
int i = 0;
while(getp(i) + i < num){ //c语言老师说这叫穷举法
i++;
}
System.out.println(i);
}
public static int getp(int i){ //传入的是瓶盖值,返回的是可乐的值,
if(i > 3){
return i/3 + getp(i / 3 + i % 3); //把产生的瓶盖传回!递归!
}else{
return 0;
}
} |