爬楼梯,一次爬1-k阶,一共n阶楼梯,一共多少种方法
代码:
我这里下标1表示1阶楼梯,为了下标的方便
输入:
number表示楼梯总数,k表示一次爬多少阶楼梯
def jumpd(number, k):
dp = [0]*(number+1)
dp[0], dp[1] = 1, 1
for i in range(2, k):
dp[i] = sum(dp[0:i])
for j in range(k, number+1):
dp[j] = sum(dp[j-k:j])
return dp[number]
print(jumpd(4, 2))
输出:
5
比如:
1 1 1 1
1 1 2
1 2 1
2 1 1
2 2
一共五种方法