1. 题目
2. 解答
dp[i][j]表示机器人位于第i,j位置的时候,有多少路径
- 如果i = 0,dp[i][j] = 1;
- 如果j = 0,dp[i][j] = 1;
- 其他情况dp[i][j] = dp[i-1][j] + dp[i][j - 1]
#include <stdio.h>int solve(int m, int n)
{int dp[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (i == 0 || j == 0) {dp[i][j] = 1;} else {dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}}return dp[m -1][n -1];
}int main()
{int m, n;scanf("%d %d", &m, &n);int result = solve(m, n);printf("result:%d\n", result);
}
运行:
G3-3579:~/data/source/leetcode$ gcc 62differrentpath.c
G3-3579:~/data/source/leetcode$ ./a.out
3 7
result:28
G3-3579:~/data/source/leetcode$ ./a.out
3 2
result:3
G3-3579:~/data/source/leetcode$ ./a.out
7 3
result:28
G3-3579:~/data/source/leetcode$ ./a.out
3 3
result:6