import java.util.Scanner;
class F
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of points: ");
int numberOfPoints = input.nextInt();
double[][] points = new double[numberOfPoints][2];
System.out.print("Enter" + numberOfPoints + " points :");
for (int i = 0; i<points.length; i++)
{
points[i][0] = input.nextDouble();
points[i][1] = input.nextDouble();
}
int p1 = 0, p2 = 1;
double shortestDistance = distance(points[p1][0], points[p1][1], points[p2][0], points[p2][1]);
for (int i = 0; i<points.length; i++)
{
for (int j= i+1; j<points.length; j++)
{
double distance = distance(points[i][0], points[i][1], points[j][0], points[j][1]);
if (shortestDistance > distance)
{
p1=i;
p2=j;
shortestDistance = distance;
}
}
}
System.out.println("The closest two points are " + "(" + points[p1][0] + "," + points[p1][1] + ") and (" +
points[p2][0] + "," + points[p2][1] + ")");
}
public static double distance(double x1, double y1, double x2, double y2)
{
return Math.sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));
}
}
输入n个坐标,判断哪两个坐标之间距离最短
最新推荐文章于 2024-08-11 15:35:01 发布
本文介绍了一个使用Java编写的算法,该算法通过输入一系列点的坐标,找出距离最近的两个点。程序首先提示用户输入点的数量,然后逐个读取每个点的x和y坐标,接着计算所有点对之间的距离,最终确定并输出距离最近的点对。
352





