python 笔试题中常见的爬楼梯问题

从每步1~2级阶梯到1~m级阶梯,需要改变的不仅仅只是步长,还有每步走完之后,对剩余台阶总数的判断。当总剩余的台阶数n大于步长m的时候,则第一步为1~m的一个数值,循环递归求解可能的走法。如果总剩余台阶数n小于步长m的时候,则步长调整为n,递归求解。
 
n: 总的台阶数
m: 每次可以走的最大的阶数
return: 一共有多少种可能的走法
def test(n,m):
    step = 0
    if n == 0:
        return 1
    if n>=m:
        for i in range(1,m+1):
            step+=test(n-i, m)
    else:
        step += test(n, n)
    return step

  

posted @ 2020-05-30 09:11  浮云飘渺的狮子  阅读(542)  评论(0)    收藏  举报