最近的一个java作业,觉得写的还行,值得注意的是可能有几组点的距离最小且相等。
import java.util.Scanner;
public class Distance {
public static double compute(double[] a,double[] b){
double[] c=new double[3];
c[0]=Math.pow(a[0]-b[0],2);
c[1]=Math.pow(a[1]-b[1],2);
c[2]=Math.pow(a[2]-b[2],2);
c[0]=Math.sqrt(c[0]+c[1]+c[2]);
//其实这里不用开方,不过这题不要求效率,所以还是开方了好看一些
return c[0];
}
public static int[] getmin(double[] a){
int[] n=new int[100];
n[0]=1;
//n[0]用来存储距离相同且最小的组数
double min=a[0];
for(int i=1;i<a.length;i++){
if(a[i]==min){
n[n[0]+1]=i;
n[0]++;
}else if(a[i]<min){
n[0]=1;
n[1]=i;
min=a[i];
}
}
return n;
}
public static void main(String[] args) {
//double[][] points={
{-1,0,3},{-1