牛客网_剑指offer_变态跳台阶_c++

题目描述:

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

解题思路:

依旧还是递归的思路,找到对应的递归式十分重要,这里显然,可以由任意一阶到第n阶,则对应的递归式为:
f(n) = f(0) + f(1) + f(2) + … + f(n-1)

注意:由于可以从原始的位置直接跳到n阶,所以这里一定要注意有一个f(0) = 1

具体代码如下:

class Solution 
{
public:
    int jumpFloorII(int number) 
    {
        if (number == 0) return 1;
        if (number == 1) return 1;
        if (number == 2) return 2;
        if (number > 2)
        {
            int res = 0;
            for (int i = 0; i < number; i++)
            {
                res += jumpFloorII(i);
            }
            return res;
        }
        else return -1; //出错的时候返回-1
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_40349531/article/details/89470986