题目描述:设想有个机器人坐在X*Y网格的左上角,只能向右向下移动。机器人从(0,0)开始出发,到(X,Y)共有多少种方法。
思路:到i,j只和,(i-1,j)和(i,j-1)有关
递归的时候加备忘
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include
11 #include 12 #include 13 #include 14 using namespace std;15 16 int gridPaths[1000][1000];17 18 int fun(int x,int y)19 {20 if(x == 0 || y == 0)21 {22 gridPaths[x][y] = 1;23 return gridPaths[x][y];24 }25 if(gridPaths[x][y] > 0)26 return gridPaths[x][y];27 else28 {29 gridPaths[x][y] = fun(x-1,y)+fun(x,y-1);30 return gridPaths[x][y];31 }32 }33 34 int main()35 {36 memset(gridPaths,-1,sizeof(gridPaths));37 int x = 10;38 int y = 10;39 cout<
思考:如果加入禁区点,怎么找一条路径?