思路

  1. 当行=0;列=0时只有一种走法
  2. 当行=0时,列的多少不会影响走法
  3. 当列=0时,行的多少不会影响走法
  4. 当行列都不为0时,dp[i][j] = dp[i - 1][j] + dp[i][j - 1];

Answer

#include<stdio.h>

int main() {

    int m, n;
    scanf("%d %d", &n, &m);
    int dp[n + 1][m + 1];
    for (int i = 0; i <= n; i++) {
        for (int j = 0; j <= m; j++) {
            if (i == 0 && j == 0) {
                dp[i][j] = 1;
                continue;
            }
            if (i == 0) {
                dp[i][j] = dp[i][j - 1];
            }
            else if (j == 0) {
                dp[i][j] = dp[i - 1][j];
            } else {
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }

        }
    }
    printf("%d", dp[n][m]);
    return 0;
}