题目描述:输入一个target,代表有target层台阶,你一次可以跳1、2、3、4....N层,问你跳到target总共有多少种方法。
思路:递归,如果推导出递归关系,n层总共有f(n)=f(n-1)+f(n-2)+....f(1) 种方法,f(n-1)=f(n-2)+f(n-3)+....f(1)。两式子相减得到:f(n)= 2*f(n-1)从而很容易写出程序了
java程序:
public class Solution {
public int JumpFloorII(int target) {
if(target<=0)
return 0;
if(target == 1)
return 1;
return 2*JumpFloorII(target-1);
}
}