过河卒 计算出错 求帮助 谢谢
以下为代码部分
#include<iostream>
#include<algorithm>
using namespace std;
int check(int x, int y,int m, int n){
return ((std::abs(m-x)==2 || std::abs(n-y)==2) && (std::abs(m-x)+std::abs(n-y)==3)) || (x==m&&y==n);
}
int main(){
int x_b,y_b,x_c,y_c;
cin>>y_b>>x_b>>y_c>>x_c;
int a[x_b+5]={0};
x_b+=2;y_b+=2;x_c+=2;y_c+=2;
a[2]=1;
for(int i=2;i<=y_b;i++){
for(int j=2;j<=x_b;j++){
if(check(j,i,x_c,y_c))a[j]=0;
else a[j]+=a[j-1];
}
}
cout<<a[x_b]<<endl;
return 0;
}
以上文本是参考了题解,然后我自己按照自己能理解的部分写的,求帮助,谢谢。