Problem P10. [算法课动态规划]走网格
要知道走到
(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;
}