Android开发经验谈

算法(9)疯狂跳台阶

2018-11-07  本文已影响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;
    }
上一篇下一篇

猜你喜欢

热点阅读