题目
思路1
组合数学的知识
在走完一个完整的路径的时候,都会向右走20步,向下走20步,所以就是从40步里选20步,C(20,40)
思路二
每一条路径grid[i][j]=grid[i-1][j]+grid[i][j-1]
发现新大陆
代码2
#include <iostream>
#include <string.h>
#define MAXX 3005
using namespace std;
long long grid[22][22]; //输出很大,要用长一点的
int main()
{
memset(grid, 0, sizeof grid);
for (int i = 1; i <= 21; ++i) //要从1开始,不然会溢出
{
for (int j = 1; j <= 21; ++j)
{
if (i == 1 && j == 1)
grid[i][j] = 1;
else
grid[i][j] = grid[i - 1][j] + grid[i][j - 1];
}
}
cout << grid[21][21];
return 0;
}