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
浙公网安备 33010602011771号