十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import java.util.Scanner;
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站设计、成都网站建设、网站策划、网页设计、主机域名、虚拟空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。
public class Demo
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
Point p1,p2;
System.out.println("请输入第1个点的x、y坐标:");
p1=new Point(sc.nextDouble(),sc.nextDouble());
System.out.println("请输入第2个点的x、y坐标:");
p2=new Point(sc.nextDouble(),sc.nextDouble());
System.out.println("点"+p1+"与点"+p2+"的距离是"+p1.distance(p2));
}
}
class Point
{
Point(double x,double y)
{
this.x=x;
this.y=y;
}
public String toString()
{
return "("+x+","+y+")";
}
double distance(Point p)
{
return Math.sqrt(Math.pow(this.x-p.x,2)+Math.pow(this.y-p.y,2));
}
private double x,y;
}
import java.awt.Point;
import java.util.Scanner;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("请输入有几组:");
Scanner scanner = new Scanner(System.in);
int groupCount = scanner.nextInt();
double results[] = new double[groupCount];
for (int i=0;igroupCount;i++) {
System.out.println("请输入第"+(i+1) + "组2点的坐标(以,分隔):");
String line = scanner.next();
String[] values = line.split(",");
if (values.length != 4) {
System.out.println("输入的数据格式不对!");
i = i--;
}
else {
double p1 = Double.valueOf(values[0]);
double p2 = Double.valueOf(values[1]);
double p3 = Double.valueOf(values[2]);
double p4 = Double.valueOf(values[3]);
results[i] = getDistance(p1, p2, p3, p4);
}
}
for (int i=0;iresults.length;i++)
System.out.println(results[i]);
}
public static double getDistance(double p1,double p2,double p3,double p4) {
double d = 0.0;
d = Point.distance(p1, p2, p3, p4);
return d;
}
}
两维空间里,两点间的距离公式是L = sqrt((x1-x2)^2+(y1-y2)^2);
多维空间的公式照推。
假设文件中数据如下:
3
2,5,6
6,8,5
则对应的代码如下:
BufferedReader reader = new BufferedReader(new FileReader("C:/test.txt"));
//获取维数
String s1 = reader.readLine();
num = Integer.parseInt(s1);
//获取第一个坐标的信息,将其坐标信息保存在数组中
String s2 = reader.readLine();
String[]str2 = s2.split(",");
int p1[] =new int[num];
for(int i=0;inum;i++) {
p1[i] = Integer.parseInt(str2[i]);
}
//获取第二个坐标的信息,同上,略过
……
//将对应坐标之差保存到另外一个数组
int a []=new int[num];
for(int i = 0;inum;i++)
a[i] = p1[i]-p2[i];
//求这个数组各元素的平方和
int sum = 0;
for(int i=0;inum;i++) {
sum += a[i]*a[i];
}
求距离
int L = Math.sqrt(sum);
以上代码直接在浏览器中完成,可能会有编码问题,楼主细察
import
java.util.Scanner;
public
class
TestObject
{
/**
*
@param
args
*/
public
static
void
main(String[]
args)
{
//
TODO
Auto-generated
method
stub
Scanner
in
=
new
Scanner(System.in);
System.out.println("请输入第一个坐标点:");
int
x1
=
in.nextInt();
int
y1
=
in.nextInt();
System.out.println("请输入第二个坐标点:");
int
x2
=
in.nextInt();
int
y2
=
in.nextInt();
int
distance
=
(int)
Math.sqrt(Math.abs((x1
-
x2)*(x1
-
x2))+Math.abs((y1
-
y2)*(y1
-
y2)));
System.out.println("两点间距离是:"+distance);
}
}