一层楼共有n级台阶,一次可以上至少1级但是不超过m级台阶,求有多少种不同的上楼方案数。

代码如下:

def walk(n,m):
    if(n==0):
        return 1
    count=0
    if(n>=m):
        for i in range(1, m+1):
            count+=walk(n-i,m)
    else:
        count+=walk(n,n)
    return count

n,m=[int(i) for i in input().strip().split(" ")]
target=walk(n,m)
print(target%10007)

输入输出:

4 3
7