题目内容:
一个机器人只能向下和向右移动,每次只能移动一步,设计一个算法求机器人从(1,1)到(m,n)有多少条路径。
输入格式:
以空格分开m,n
输出格式:
路径条数
输入样例:
4 5
输出样例:
35
时间限制:500ms内存限制:32000kb
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
vector <vector<int>> a(m + 2, vector<int>(n + 2));
for (int i = 0; i < m+2; i++)
{
a[i][0] = 0;
a[i][n + 1] = 0;
}
for (int i = 0; i < n+2; i++)
{
a[0][i] = 0;
a[m+1][i] = 0;
}
a[m][n] = 1;
for (int i = m; i > 0; i--)
{
for (int j = n; j >= 0; j--)
{
if (i == m && j == n)
{
continue;
}
else
{
a[i][j] = a[i + 1][j] + a[i][j + 1];
}
}
}
cout << a[1][1];
return 0;
}