今天去公司面试做到这个面试题,想了半天还是想到了用递归,回来重新调整一下代码
public class Climb {
private int step;
public int total;
public Climb(int step) {
this.step = step;
}
public void climb(int left){
if(left<=step){
total+=left; //(这里写错了,应该是2^(left-1))
}else{
for(int i=1;i<=step;i++){
climb(left-i);
//total++; 脑子抽了
}
}
}
public static void main(String[] args){
Climb c=new Climb(3);
c.climb(4);
System.out.println(c.total);
}
}