每日算法题 跳台阶

版权声明:我是小仙女 转载要告诉小仙女哦 https://blog.csdn.net/qq_40210472/article/details/88823570

首先,参考其他的博主 放出这张图,从这张图中我们可以看出,青蛙跳台阶问题可以 是等同于斐波那契数列的。

所以可以使用递归或者循环的方式处理。

class Solution:
    # @param {integer} n
    # @return {integer}
    def climbStairs(self, n):
        if n==1 or n==2:
            return n
        a=1;b=2;c=3
        for i in range(3,n+1):
            c=a+b;a=b;b=c
        return c
class Solution:
    # @param {integer} n
    # @return {integer}
    def climbStairs(self, n):
        def fact(n):
            result=1
            for i in range(1,n+1):
                result*=i
            return result
        total=0
        for i in range(n/2+1):
            total+=fact(i+n-2*i)/fact(i)/fact(n-2*i)
        return total

猜你喜欢

转载自blog.csdn.net/qq_40210472/article/details/88823570