剑指offerNo8. 跳台阶(Java)

题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

思路:

当n=1时:跳法 = 1 种  (1) 备注:1指的是一次跳一个台阶

当n=2时:跳法 = 2 种  (1+2) 备注: 一次1个台阶并连续跳两次,一次2个台阶

当n=3时:跳法 = 3 种  (1+(2+1)+(1+2)) 备注: 一次1个台阶并连续跳3次,一次2个台阶和一次1个台阶,一次1个台阶和一次2个台阶

当n=4时:跳法 = 5种  (1+(2+2)+(2+1+1)+(1+1+2)+(1+2+1)) 备注:与上同理

当n=5时:跳法 = 8种  (1+(1+1+2+1)+(1+2+1+1)+(1+1+1+2)+(2+1+1+1)+(2+2+1)+(1+2+1)+(1+2+2) 备注: (与上同理)

........

可以得出规律 F(n) = F(n-1)+F(n-2) F(1) = 1,F(2)=2

代码:

扫描二维码关注公众号,回复: 9197524 查看本文章
package offer;

public class TestNo8 {
    public static void main(String[] args) {
        System.out.println(new TestNo8().JumpFloor(4));
    }
    public int JumpFloor(int target) {
        if(target == 1){
            return 1;
        }
        else if(target==2){
            return 2;
        }
        else
            return JumpFloor(target-1)+JumpFloor(target-2);
    }
}
发布了46 篇原创文章 · 获赞 11 · 访问量 3564

猜你喜欢

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