算法第四版 1.2.1
题目:编写一个Points2D用例,从命令行接受一个整数,并在单位正方形中生成n个点,然后计算两点之间的最大距离。
代码如下:
import java.util.Random; import edu.princeton.cs.algs4.Point2D; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class No_1_2_1 { public static void main(String[] args) { int n = StdIn.readInt(); Random random = new Random();//random产生随机数 Point2D[] points = new Point2D[n];//创建n个点的对象的数组 for(int i=0;i<n;i++) { double x = random.nextDouble();//随机生成x,y,位于[0,1.0] double y = random.nextDouble(); points[i] = new Point2D(x,y);//用x,y来初始化对象 } double dis=0; double temp =0; for(int i=0;i<n;i++)//遍历所有点的组合,求距离 { for(int j=i+1;j<n;j++) { temp = points[i].distanceTo(points[j]);//计算点i到点j的距离 if(temp>dis) dis= temp; } } StdOut.println(dis); } }