c语言(0,0)到(m,n)点的走法
时间: 2024-02-05 09:02:32 浏览: 48
C语言/c++解决马走日问题。:从(0,0)点到(x,y)点,只能往右,输出每种路径总数并打印出各种路径
5星 · 资源好评率100%
这是一个典型的动态规划问题。假设f(i,j)表示从(0,0)到(i,j)的走法总数,则有如下递推式:
f(i,j) = f(i-1,j) + f(i,j-1)
其中,当i=0或j=0时,f(i,j)=1。这是因为只能向右或向下走一步,所以只有一种走法。
最终的答案即为f(m,n)。
下面是一个简单的C语言实现:
```
#include <stdio.h>
int main()
{
int m, n;
printf("请输入m和n:");
scanf("%d %d", &m, &n);
int f[m+1][n+1];
for (int i = 0; i <= m; i++) {
for (int j = 0; j <= n; j++) {
if (i == 0 || j == 0) {
f[i][j] = 1;
} else {
f[i][j] = f[i-1][j] + f[i][j-1];
}
}
}
printf("从(0,0)到(%d,%d)的走法总数为:%d\n", m, n, f[m][n]);
return 0;
}
```
阅读全文