题目:
如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次。
对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如dis(0, 1)=3, dis(-2, -1)=9
给出整点坐标(X, Y),你能计算出dis(X, Y)吗?
【输入格式】
X和Y
对于40%的数据,-1000 <= X, Y <= 1000
对于70%的数据,-100000 <= X, Y <= 100000
对于100%的数据, -1000000000 <= X, Y <= 1000000000
【输出格式】
输出dis(X, Y)
【输入样例】
0 1
【输出样例】
3
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
不要使用package语句。不要使用jdk1.7及以上版本的特性。
主类的名字必须是:Main,否则按无效代码处理。
思路:逻辑题
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner in=new Scanner(System.in);
long x=in.nextInt();
long y=in.nextInt();
long t=Math.max(Math.abs(x), Math.abs(y));
BigDecimal sum;
if(t!=1)
sum=new BigDecimal(4*(t-1)*t);
else
sum=new BigDecimal(0);
long p=-t;
if(y>x)
sum=sum.add(new BigDecimal(x+y-2*p));
else
sum=sum.add(new BigDecimal(8*t-(x+y-2*p)));
System.out.println(sum);
}
}