Description
现有在一个mXn的棋盘,如下图所示,有一个中国象棋中的“卒”,停留在棋盘的左上角,卒每步只能往右或往下走一格,问卒要走到右下角,一共有多少种走法?
Input
输入多组测试数据。
每行数据输入两个数m(1≤m<16)和n(1≤n<16),分别代表棋盘的行和列。
测试数据输入到文件末为止。
Output
输出在相应的棋盘下,卒一共可走的方法数。
每组数据在单独的一行上。
Sample Input
1 1
2 1
Sample Output
2
3
HINT
Source
思路:递归且如果在边界 步数等于边界数加一
#include<stdio.h>
int main()
{
int m,n,i,j;
int a[20][20]; //预处理
for(i=1;i<=16;i++) //处理边界/终止条件
a[i][1]=i+1;
for(j=1;j<=16;j++)
a[1][j]=j+1;
for(i=2;i<=16;i++) //递归
for(j=2;j<=16;j++)
a[i][j]=a[i-1][j]+a[i][j-1];
while(scanf("%d%d",&m,&n)!=EOF)
{
printf("%d\n",a[m][n]);
}
return 0;
}