Problem P10. [算法课动态规划]走网格

image

要知道走到(m,n)有多少种方法,那就要知道走到前一步的位置有多少种方法,即将走到(m-1,n)(m,n-1)的方法相加。

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int nums[15][15];
int m, n;

int main()
{
    scanf("%d %d", &m, &n);
    for (int i = 1; i <= m; i++){
        for (int j = 1; j <= n; j++){
            int sum = 0;
            if (i > 1){
                sum += nums[i-1][j];
            }
            if (j > 1){
                sum += nums[i][j-1];
            }
            if (i==1&&j==1){
                nums[i][j]=1;
                continue;
            }
            nums[i][j] = sum;
        }
    }
    printf("%d", nums[m][n]);
    return 0;
}
posted @ 2022-09-08 13:04  白缺  阅读(79)  评论(0编辑  收藏  举报