输入一个坐标,得出结果是按途中螺旋折线的长度,基本单位为1,要求:内存消耗< 256M
public class Demo3 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String line = s.nextLine();
//截取字符串,并转化成int类型
int x = Integer.parseInt(line.split(",")[0]);
int y=Integer.parseInt(line.split(",")[1]);
//定义输出结果
int dis=0;
//判断x,y坐标的绝对值,如果y大则执行如下
//以y轴为基准,可以算出每一个x为0的,螺旋线长度,为k*y*y+t*y=长度。
//算出kt值,带入
if (Math.abs(x)<=Math.abs(y)) {
//如果y大于等于0的情况,是直接加上x即可,为负,时自动减去对应的值
if (y>=0) {
dis=4*y*y-y+x;
}else{
//同上,算出y为负时的一元二次方程
dis=4*y*y-3*y-x;
}
}else{
//如果x绝对值大,执行如下
//如果x为正
if (x>=0) {
//同上,算出x的一元二次方程,直接减去y即可,获取的就是对应的螺旋线长度
dis=4*x*x+x-y;
}else{
//为负时,同上算出一元二次方程,并加上对应的y轴坐标
dis=4*y*y+3*x+y;
}
}
//输出结果
System.out.println("dis("+x+","+y+")="+dis);
}
}
感觉主要考察的是数学算术。。。。。。。。。