题目

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

思路

今天的题目是变态跳台阶,昨天是跳台阶,昨天跳台阶只有两种跳跃类别,再加上题目的提示,猜到了f(n)=f(n-1)+f(n-2)这个关系,实话实说,这是投机取巧,猜到了解法也只是知其然而不知其所以然,所以今天这个题就麻爪了,搜呗,搜到一大神,将其所以然解释清楚了,大神的链接如下:
https://blog.csdn.net/u013408863/article/details/106008031/
虽然大神解释的青蛙只能跳1级和2级的情况,但我们可以以此类推啊,那青蛙最后一跳跳3个台阶的跳法就是f(n-3)种,最后一跳跳4个台阶的跳法就是f(n-4)种,直到最后一跳跳n个台阶的时候,就是直接跳到最后,就1种,所以可以得出f(n)=f(n-1)+f(n-2)+f(n-3)+...+1。由此,我们就可以代码实现了。
#代码

class Solution {
public:
    int jumpFloorII(int number) {
        int total = 0;
        if (number == 1)
        {
            return total+1;
        }
        else
        {
            for (int i = 1; i< number; i++)
            {
                total += jumpFloorII(i);
            }
        }
        return total + 1;
    }
};