• 青蛙跳台阶


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

    # 解法一:递归思想
    # 如果当前跳了一阶,还剩余n-1阶
    # 如果当前跳了两阶,还剩余n-2阶
    # 分别对n-1阶与n-2阶求次数,再相加
    def jumpFloor(number):
    	if number in (1, 2):
    		return number
    	return jumpFloor(number-1)+jumpFloor(number-2)
    
    a = jumpFloor(10)
    print(a)
    
    
    # 解法二:循环实现,避免阶数过大造成时间超限
    def jumpFloor(number):
        if number == 1 or number == 2:
            return number
        n, m = 1, 2
        for i in range(number-2):
        	result = m + n
        	n, m = m, result
        return result
    
    a = jumpFloor(10)
    print(a)
    
    
    # 解法三:公式
    # 设n级台阶,跳了z次,x次跳一阶,y次跳两阶。
    # >>> z = x + y
    # >>> n = 2*x + y
    
    # @param {integer} n
    # @return {integer}
    def climbStairs(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):	# float不能作为range的参数
        for i in range(n//2+1):
            total+=fact(i+n-2*i)/fact(i)/fact(n-2*i)
        return total
    
    a = climbStairs(10)
    print(a)
    
  • 相关阅读:
    省选模拟64
    省选模拟63
    杂题
    省选模拟62
    省选模拟61
    省选模拟60
    省选模拟58
    IntelliJ IDEA配置tomcat【全程详解】
    java之 Timer 类的简单使用案例
    Intellij IDEA导入Github中的MAVEN多模块项目【保持项目样式】
  • 原文地址:https://www.cnblogs.com/yimeng123/p/14144096.html
Copyright © 2020-2023  润新知