n,m = map(int,input().split())
dp = [[0] * (m + 1) for i in range(n + 1)]
for i in range(n + 1):
for j in range(m + 1):
if i == 0 and j == 0:
dp[0][0] = 1
elif i == 0:
dp[0][j] = dp[0][j - 1]
elif j == 0:
dp[i][0] = dp[i - 1][0]
else:
dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
print(dp[-1][-1])
对于第一行和第一列,都只有一种走法,所以都为1
对于其他格子,可以从上方或者左方走来
所以dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
最后返回dp[-1][-1]即为答案

京公网安备 11010502036488号