问答1 问答5 问答50 问答500 问答1000

大神,帮我看看,谢谢你

提问网友 发布时间:2024-04-26 19:53
声明声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2024-04-28 04:53
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ShortDistance {

static class Point{
private double x;

private double y;

public Point() {
}

public Point(double x, double y) {
this.x = x;
this.y = y;
}

/**
* 计算点p 到该点的距离
* @param p
* @return
*/
public double distance(Point p){
return Math.sqrt(Math.pow(p.x - this.x ,2) + Math.pow(p.y - this.y, 2));
}

public double findShortDistance(List<Point> points){
double min = 0;
Point result = null;
for(Point p : points){
if(p == this || p.equals(this))
continue;
double distance = distance(p);
if(min == 0 || (min != 0 && distance < min)){
min = distance;
result = p;
}
}
System.out.println("距离" + this + "最近的点是:" + result + "距离为:" + min);
return min;
}

@Override
public boolean equals(Object obj) {
if(!(obj instanceof Point))
return false;
Point p = (Point)obj;
return x == p.x && y == p.y;
}

@Override
public int hashCode() {
int result = 17;
long dx = Double.doubleToLongBits(x);
result += (dx ^ (dx >>> 32));
long dy = Double.doubleToLongBits(y);
result += (dy ^ (dy >>> 32));
return result;
}

@Override
public String toString() {
return "Point [x=" + x + ", y=" + y + "]";
}
}

public static void main(String[] args) {
System.out.println("输入点集合:(x1,y2) (x2,y2) (x3,y3) ... (xn,yn)");
//(3,5) (3,12) (4,9) (2,8) (5,11)
Scanner scanner = new Scanner(System.in);
String content = scanner.nextLine();
scanner.close();
List<Point> points = dealPointContent(content);
if(points.size() > 0){
for(Point point : points){
point.findShortDistance(points);
}
}
}

public static List<Point> dealPointContent(String content){
ArrayList<Point> points = new ArrayList<Point>();
String[] items = content.split(" ");
for(String item : items){
item = item.replaceAll("[()]", "");
String[] ps = item.split(",");
if(ps.length != 2)
continue;
Point point = new Point(Double.parseDouble(ps[0].trim()),Double.parseDouble(ps[1].trim()));
points.add(point);
}
return points;
}

}

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 甘肃月牙泉周边有哪些适合露营的好地方? 请问一个手机号注册了两个,但登不上另一个怎么办啊? 吉安到上饶的客车上午10点出发,要几个小时到站? 从丰台区朱家坟到朝阳区北苑路大羊坊10号怎么坐车 未满一年怎么改第二次 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... ...怎么做吖,在线等,急啊,各位大神帮忙解救一下,谢谢 修改没到一年怎么改? 48岁黎姿出海游玩晒美照 穿露肩吊带身材依旧似少女 无缝钢管与脚手钢管有什么区别?钢管是怎么分类的?钢筋线材与高线是什... 不满一年如何更改? 改错了未满一年怎么改回来? 一年内怎么改第二次 阴道口瘙痒有四五日了今天尿痛是什么症状 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 克隆粉可以灌硅胶吗? 没有物质的爱情只是一盘散沙,不用风吹,走两步就散了。真的是这样吗... 从北京西站怎么到北京市朝阳区北苑路大羊坊甲2号 麻烦发到我的邮箱2... 想知道:连云港市 从东海县到灌南县怎么坐公交? 不满足一年想改 大神,帮我看看,谢谢你 ...号在最近24小时内已绑定过3个,已达到限制? 一年只能改一次怎么改第二次? 一年能修改几次呢。? 痴心绝对吉他简谱李圣杰痴心绝对吉他谱 一年内第二次强制修改 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 不到一年怎么改第二次 修改一次,一年之内可以改第二次吗? 未满一年改二次方法 修改没到一年怎么改? 请问一个手机号注册了两个,但登不上另一个怎么办啊? 改错了未满一年怎么改回来 ...com这个包主要是用来干什么的,我在javaAPI上没有看到这个包。_百度... 未满一年可以强制改吗 改错了未满一年怎么改回来 同一个手机号注册了两个微信,第一登不上了怎么办? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信...