变态跳台阶

Posted cong3z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变态跳台阶相关的知识,希望对你有一定的参考价值。

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

思路:n=1,f=1

   n=2,f=2(1;2)

   n=3,f=4(111;12;21;3)

   n=4,f=5(11111,121,112,211,4,13,31)

   由规律可知n=k(k>1)时,要k*2次

   也可以倒过来跳,n个台阶,现在跳一个,剩下要f(n-1)+f(n-2)+.....1

                现在我们再跳一个,现在在n-1格,那么还需要f(n-2)+....+1

     合起来就是f(n)=2f(n-1) n>1

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
                if number<1:
                    return 0
                if number==1:
                    return 1
                a=1
                for i in range(2,number+1):
                    b=a*2
                    a=b
                return b

以上是关于变态跳台阶的主要内容,如果未能解决你的问题,请参考以下文章

青蛙跳台阶衍生之变态跳台阶(递归,思路分析及代码实现)

剑指Offer变态跳台阶

变态跳台阶

剑指offer:变态跳台阶

剑指offer 9.变态跳台阶

剑指Offer-Java-变态跳台阶