变态跳台阶

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

解题思路:

当 n=1时,f(1)=1;

当 n=2时,f(2)=f(2-1)+f(2-2);  //第一次跳一阶,第二次跳二阶  //  这里f(2-2)指的是一下子跳两阶梯即f(0) =1      =》1种跳法。

当 n=3时,f(3)=f(3-1)+f(3-2)+f(3-3);

当 n=n时,f(n)= f(n-1)+f(n-2)+...+f(n-n)=f(0)+f(1)+f(2)+...f(n-2)+f(n-1);

再因为                                            f(n) =f(0)+f(1)+f(2)+...f(n-2);

所以f(n) = 2*f(n-1);

class Solution {
public:
int jumpFloorII(int number) {
    if(number == 0)
      return 0;
    else if(number == 1)
      return 1;
    else
      return 2*jumpFloorII(number -1);
  }
};

posted @ 2020-05-21 19:43  转瞬即逝1995  阅读(100)  评论(0编辑  收藏  举报