剑指offerNo9. 变态跳台阶(Java)

题目描述:

一只青蛙一次可以跳上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);
        }
    }
}
发布了46 篇原创文章 · 获赞 11 · 访问量 3560

猜你喜欢

转载自blog.csdn.net/qq_40664693/article/details/104343378