import re
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param number int整型 
# @return int整型
#
class Solution:
    def jumpFloor(self , number: int) -> int:
        # # write code here
        #假设f[i]表示在第i个台阶上可能的方法数。
        #逆向思维。如果我从第n个台阶进行下台阶,下一步有2种可能,
        #一种走到第n-1个台阶,一种是走到第n-2个台阶。
        #f[n]= f[n-1]+f[n-2]
        
        # #动态规划
        # dp=[0]*50
        # dp[0]=1
        # dp[1]=1
        # for i in range(2,number+1):
        #     dp[i]=dp[i-1]+dp[i-2]
        # return dp[number]

        #优化,与斐波那契数列相同
        a,b=1,1
        for i in range(2,number+1):
            a,b=b,a+b
        return b