C++ 代码
//已知起点和终点
//f[n][m] 到 f[1][1]所有的路径总数
//
const int N=35;
int f[N][N];
int n,m;
#include<bits/stdc++.h>
using namespace std;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
if(i==1 && j==1){
//f[1][2] = f[1][1]+f[0][2] =1+0 =1
//f[2][1] = f[2][0]+f[1][1] =0+1 =1
f[i][j]=1;
continue;
}
if(i%2==0 && j%2==0){
continue;
}
//左边+上面
f[i][j]=f[i][j-1] + f[i-1][j];
}
cout<<f[n][m]<<endl;
return 0;
}