第九届蓝桥杯第七题
题目
标题:螺旋折线
如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。
对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如dis(0, 1)=3, dis(-2, -1)=9
给出整点坐标(X, Y),你能计算出dis(X, Y)吗?
---------------------
详细代码
<textarea readonly="readonly" name="code" class="java">
public class Main{
public static void main(String args[]) {
int[] zuobiao=new int[2];
Scanner cin=new Scanner(System.in);
zuobiao[0]=cin.nextInt();
zuobiao[1]=cin.nextInt();
int p=Math.abs(zuobiao[0]),q=Math.abs(zuobiao[1]);
int max=q;
if(p>q) {
max=p;
}
int length=0;
for(int i=0;i<max;i++) {
length+=i*2*4;
}
if(zuobiao[0]>=0&&zuobiao[1]>=0) {
length=length+zuobiao[0]+max+zuobiao[1]+max;
}else if(zuobiao[0]>=0&&zuobiao[1]<0) {
length=length+zuobiao[0]+max-zuobiao[1]+max*3;
}else if(zuobiao[0]<0&&zuobiao[1]>=0) {
length=length+zuobiao[1]+max-zuobiao[0];
}else if(zuobiao[0]<0&&zuobiao[1]<0) {
if(zuobiao[1]==-max) {
length=length+max*2*4-(max+zuobiao[0]);
}else {
length=length+max+zuobiao[1];
}
}
System.out.println(length);
cin.close();
}
</textarea>