题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
当n=1时:跳法 = 1 种 (1) 备注:1指的是一次跳一个台阶
当n=2时:跳法 = 2 种 (1+2) 备注: 一次1个台阶并连续跳两次,一次2个台阶
当n=3时:跳法 = 4种 (1+(2+1)+(1+2)) 备注: 一次1个台阶并连续跳3次,一次2个台阶和一次1个台阶,一次1个台阶和一次2个台阶
当n=4时:跳法 = 8种 (1+(1+2+1)+(2+1+1)+(1+1+2)+(2+2)+(3+1)+(1+3)+4) 备注:与上同理
当n=5时:跳法 = 16种 同理以上
........
可以得出规律 F(n) = 2*F(n-1) F(1) = 1
代码:
package offer;
public class TestNo9 {
public static void main(String[] args) {
System.out.println(new TestNo9().JumpFloorII(4));
}
public int JumpFloorII(int target) {
if(target<=0){
return -1;
}else if(target==1){
return 1;
}else{
return 2*JumpFloorII(target-1);
}
}
}