移动距离
没太看懂y总代码,自己写的时候对y%w==0的情况作了单独判断,代码有点冗余
C++ 代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=1e4+10;
int main()
{
int w,m,n;
cin>>w>>m>>n;
//m--,n--;/*从1开始计算行号*/
int x1,y1,x2,y2;
y1=m%w;
if(y1==0)x1=m/w;else x1=m/w+1;
if(x1%2==0){
if(y1==0)y1=1;
else y1=w-y1+1;
}
else {
if(y1==0)y1=w;
}
y2=n%w;
if(y2==0)x2=n/w;else x2=n/w+1;
if(x2%2==0){
if(y2==0)y2=1;
else y2=w-y2+1;
}
else {
if(y2==0)y2=w;
}
int res=abs(x1-x2)+abs(y1-y2);
cout<<res<<"\n";
return 0;
}