首页 > 其他 > 详细

变态跳台阶

时间:2020-05-09 20:25:04      阅读:47      评论:0      收藏:0      [点我收藏+]

一只青蛙一次可以跳上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

变态跳台阶

原文:https://www.cnblogs.com/cong3Z/p/12859822.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!