美文网首页Android开发经验谈
算法(9)疯狂跳台阶

算法(9)疯狂跳台阶

作者: 猪_队友 | 来源:发表于2018-11-07 16:21 被阅读4次

    题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    这个问题首先看是很难看出来的,那只好自己写写画画找找规律。

    笨方法:
    f(1) = 1
    f(2)= 2
    f(3)= 4
    f(4)= 8
    貌似发现什么了,有时间的同学可以算算f(5),我是数不下去了。

    分析法:
    f(n)= f(n-1)+f(n-2)+...+f(2)+f(1)
    f(n-1)= f(n-2)+f(n-3)+...+f(2)+f(1)
    突然想买一本高中数学书看看了,好熟悉的公式啊~~
    结果就是f(n) = 2*f(n-1)
    哇咔咔,答案这么简洁的吗?
    就是 1 2 4 8 16 32 吗?
    好吧在下年少无知请多包涵。

     public static int JumpFloorII(int target) {
            if (target <= 0) {
                return 0;
            }
    
            return 1<<--target;
        }
    

    相关文章

      网友评论

        本文标题:算法(9)疯狂跳台阶

        本文链接:https://www.haomeiwen.com/subject/utmvxqtx.html