#include <iostream>
#include<vector>
using namespace std;
/**
题目描述
有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,
要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。
给定两个正整数int x,int y,请返回机器人的走法数目。
保证x+y小于等于12。
**/
class Robot {
public:
int countWays(int x, int y) {
// write code here
if(x<=1 or y<=1){
return 1;
}
vector<int> line0(y,1);
vector<vector<int> > matrix;
matrix.push_back(line0);
vector<int> res(y,0);
/** C++中对vector一维向量的初始化,第一个参数表示向量的长度,第二个参数表示向量的数值
**/
res[0]=1;
for(int i=1;i<=x;i++){
matrix.push_back(res);
}
for(int j=1;j<=x-1;j++){
for(int k=1;k<=y-1;k++){
matrix[j][k]+=matrix[j][k-1]+matrix[j-1][k];
}
}
return matrix[x-1][y-1];
}
};
int main()
{
Robot a;
cout<<a.countWays(2,2)<<endl;
return 0;
}