用 for 循环特别的处理两个边界点,这样的话,代码就只有 16 行,特别简单。
#include <bits/stdc++.h>
using namespace std;
int a[100][100],m,n;
int main() {
cin>>n>>m;
a[1][0]=1;
for(int j=1; j<=m; j++) {
for(int i=2; i<n; i++) //处理两个边界点
a[i][j]=a[i-1][j-1]+a[i+1][j-1];
a[1][j]=a[n][j-1]+a[2][j-1];
a[n][j]=a[n-1][j-1]+a[1][j-1];
}
cout<<a[1][m];
return 0;
}