Java常见面试题
一、计算1+2+3+….100不得出现for、while关键字
public static void main(String[] args){
System.out.println(add(1, 100));
}
public static int add(int start, int end){
if(start==end){
return start;
}else{
return start + add(start+1, end);
}
}
二、一个人去买汽水,1块钱一瓶汽水,3个瓶盖可以换一瓶汽水,2个空瓶可以换一瓶汽水.编写一段代码计算20块钱总共可以得到多少瓶汽水?
public static void main(String[] args){
System.out.println(count(20, 0, 0));
}
public static int count(int q, int p, int k){
System.out.println(q+","+p+","+k);
if(q >= 1){
return q + count(0, p+q, k+q);
}else if(p >= 3){
q += p/3;
return count(q, p%3, k);
}else if(k >= 2){
q += k/2;
return count(q, p,k%2);
}else{
return 0;
}
}