剑指Offer——变态跳台阶

题目描述:

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


分析:

这一题其实没有那么难。思路和上一题一样(剑指Offer——跳台阶)。

可得f[n]=f[n-1]+f[n-2]+f[n-3]+...+f[1]+f[0]。

这个公式是不是很漂亮,

那么f[0]=1,f[1]=1,

是不是

f[2]=1+1=2^0+1=2^1;

f[3]=2^1+2^0+1=2^2;

...;

f[n]=2^(n-1);


代码:

1 class Solution {
2 public:
3     int jumpFloorII(int number) {
4         return 1 << (number - 1);
5     }
6 };

 

posted @ 2017-10-27 14:08  叶建成  阅读(137)  评论(0编辑  收藏  举报