剑指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 };