题目要求如下图
public static void main(String[] args) {
int x=1,y=2;
int t=(Math.abs(x)>Math.abs(y)?Math.abs(x):Math.abs(y));// 求出层数
int u=t+t;//2t
int v=u-1;//2t-1
v=v*v+u;//(2t-1)的平方+2t
if(x==t)//右边
v+=y-t;
else if(y==t)//下边
v+=t-x;
else if(y==-t)//左边
v+=3*u+x-t;
else //上边
v+=u+t-y;
System.out.println(v);
}
题目选自《程序员面试宝典》