// 动态规划的思路
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param number int整型 
     * @return int整型
     */
    int jumpFloor(int number) 
    {
        if(number <= 0) return 0;
        if(number == 1) return 1;
        if(number == 2) return 2;

        vector<int> dp(number + 1);
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i <= number; i++)
            dp[i] = dp[i - 1] + dp[i - 2];

        return dp[number];
    }
}; 
// 递归
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param number int整型 
     * @return int整型
     */
    int jumpFloor(int number) 
    {
        if(number <= 0) return 0;
        if(number == 1) return 1;
        if(number == 2) return 2;

        return jumpFloor(number - 1) + jumpFloor(number - 2);
    }
};