理解:个人感觉是这个题问的是最少步数到达右上角的方案数量;
最少其实也就是横着走一行,竖着走一列呗,也就是必须x++,或者是y++,向右走一步或者是向上走一步,把每个格子他左边数和下面数加起来就可以。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int n;
int m;
cin>>n>>m;
int a[22][22];
memset(a,0,sizeof(a));
for(int i=0; i<n; i++)
{
a[i][0]=1;
}/*因为左面是0也就是没格子*/
for(int i=0; i<m; i++)
{
a[0][i]=1;
}/*因为下面是0也就是没格子*/
for(int i=1; i<n; i++)
{
for(int j=1; j<m; j++)
{
a[i][j]=a[i][j-1]+a[i-1][j];
}
}
cout<<a[n-1][m-1]<<endl;
return 0;
}