题目:给定一个 n×m的方格阵,沿着方格的边线走,从左上角 (0,0)开始,每次只能往右或者往下走一个单位距离,问走到右下角 (n,m)一共有多少种不同的走法
分析:右边界和下边界处只有一种走法
1*1方格走法2=1+1种;
2*1方格走法3=2+1种;是先走一步然后到1*1方格
2*2方格走法6=3+2+1种,是先走一步到2*1方格或1*2方格 两个不同方格走法之和
类推:
n*m方格走法f[n][m]=f[n-1][m]+f[n][m-1];
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int f[100][100]={0};
for(int i=0;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
if(i==0||j==0) f[i][j]=1;
else f[i][j]=f[i-1][j]+f[i][j-1];
}
}
cout<<f[n][m];
return 0;
}