描述
对于给定的由 n+1条横线和 m+1 条竖线组成的网格,共相交形成 n×m 个格点。
现在,你从网格的左上角格点出发,只能沿着网格线向右或向下走,求解走到右下角格点的不同方案数。
输入描述:
在一行上输入两个整数 n,m(1≦n,m≦8),代表网格的行数和列数。
输出描述:
输出一个整数,代表不同的行走方案数。
示例1
输入:
2 2
输出:
6
说明:
在这个样例中,所绘出的网格图如下图所示。

cpp
#include<iostream>
#include<vector>
using namespace std;
int recursion(int i, int j, int m, int n){ //递归计算方案数
if(n == i || m == j) //到边界只有一种走法
return 1;
return recursion(i + 1, j, m, n) + recursion(i, j + 1, m, n); //进入子问题
}
int main(){
int m, n;
while(cin >> n >> m){
cout << recursion(0, 0, m, n) << endl;
}
return 0;
}