一、问题链接
http://noi.openjudge.cn/ch0103/16/
二、问题需求
2.1 输入四个浮点数,分别代表两个端点的横坐标、纵坐标,计算并输出由这两个端点构成的线段长度。
三、相关知识点
序号 | 知识点列表 |
|
---|---|---|
3.1 | AB两个端点间的欧氏距离公式 | d i s t ( A , B ) = ( x a − x b ) 2 + ( y a − y b ) 2 dist(A,B)=\sqrt{(x_a-x_b)^2+(y_a-y_b)^2} dist(A,B)=(xa−xb)2+(ya−yb)2,这里 x a x_a xa、 y a y_a ya、 x b x_b xb、 y b y_b yb分别代表A、B两个端点的横坐标、纵坐标 |
3.2 | Math 类的sqrt 方法 | 计算一个数的算术平方根,称为开根操作,计算结果是一个double 类型的浮点数,例如:▲ Math.sqrt(4) 得到2.0▲ Math.sqrt(1.44) 得到1.2▲ 以此类推 |
四、算法思想
4.1 定义并输入四个double
类型的浮点数xa
、ya
、xb
、yb
,分别代表A点和B点的横坐标、纵坐标;
4.2 定义double
类型的浮点数ans=Math.sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb))
,代表A点到B点线段的长度,保留3位小数输出ans
。
五、Java程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double xa = input.nextDouble(); // 定义并输入A点横坐标
double ya = input.nextDouble(); // 定义并输入A点纵坐标
double xb = input.nextDouble(); // 定义并输入B点横坐标
double yb = input.nextDouble(); // 定义并输入B点纵坐标
double ans = Math.sqrt((xa - xb) * (xa - xb) + (ya - yb) * (ya - yb)); // 定义并计算AB两点间的欧氏距离
System.out.printf("%.3f", ans); // 保留3位小数输出ans
}
}