题目理解了就容易了。先找到m,n两栋楼所对应的坐标,然后就变成了十分简单的坐标轴里两点的距离问题了,这样就十分简单了。
public class Main {
public static void main(final String[] args) {
Scanner sc = new Scanner(System.in);
int m=sc.nextInt();
int a=sc.nextInt();
int b=sc.nextInt();
int n=Math.max(a, b)/m+1;
int index=1,ai=0,aj=0,bi=0,bj=0;//记录两个楼的坐标
for(int i=0,count=1;i<n;i++,count++,index++) {
if(count%2==1) {
for(int j=0;j<m;j++) {
if(index==a) {
ai=i;aj=j;}
if(index==b) {
bi=i;bj=j;
}
}
}else {
for(int j=m-1;j>=0;j--,index++) {
if(index==a) {
ai=i;aj=j;
}
if(index==b) {
bi=i;bj=j;
}
}
}
}
System.out.println(Math.abs(aj-bj)+Math.abs(ai-bi));
}
}