【编程实现】
查找路径。
有一张m×n 个小方格的地图,一个机器人位于地图的左上角(如图标记为 Start 的地方),它每步只能向右或者向下移动一格,如果走到右下角的终点(如图标记为 Finish 的地方),有多少种不同的方法?
例如,一个 3×2 的地图,行走的方法数是 3 种,分别是:
1. 右 -> 右 -> 下
2. 右 -> 下 -> 右
3. 下 -> 右 -> 右
输入描述:
两个整数m(m<=100)和 n(n<=100),代表地图的行数和列数。输出描述:
一个整数,表示行走的方法数。
【样例输入】
8 8
【样例输出】
3432
//【参考答案】
#include <iostream>
using namespace std;
const int N = 100;
long long roads[N + 2][N + 2] = {0}; // roads[i][j]: 从起点 (0, 0) 到 (i, j) 的路线总数
int main(){
int m, n;
cin >> m >> n;
// 第 0 行、第 0 列的格子都只有一条路线
for (int i = 0; i < m; ++i){
roads[i][0] = 1;
}
for (int i = 0; i < n; ++i){
roads[0][i] = 1;
}
for (int i = 1; i < m; ++i){
for (int j = 1; j < n; ++j){
roads[i][j] = roads[i - 1][j] + roads[i][j - 1];
}
}
cout << roads[m - 1][n - 1] << endl;
return 0;
}