HDU2001 计算两点间的距离 (数学)[C,C++,Java]

题目及翻译

题面

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

输入

输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

输出

对于每组输入数据,输出一行,结果保留两位小数。

输入样例

0 0 0 1
0 1 1 0

输出样例

1.00
1.41

题目思路

输入坐标,用两点距离公式计算输出即可。

注意事项

1.输入是实数,要用double型
2.Java会有一些蜜汁坑

AC代码

C

用时15MS 内存1240K 长度199B

#include<stdio.h>
#include<math.h>
int main(){
	static double x1,x2,y1,y2,Ans;
	while(~scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2))
	printf("%0.2lf\n",sqrt(pow(x1 - x2,2.0) + pow(y1 - y2,2.0)));
	return 0;
}

C++

用时0MS 内存1716K 长度260B

#include<iostream>
#include<iomanip>
#include<cmath>//c语言的头文件,尾缀.h改为前缀c
using namespace std;//引用命名空间
int main(){
	static double x1,x2,y1,y2,Ans;
	while(cin>>x1>>y1>>x2>>y2){
	cout<<fixed<<setprecision(2);
	cout<<sqrt(pow(x1 - x2,2.0) + pow(y1 - y2,2.0))<<endl;
	}
	return 0;
}

Java

用时358MS 内存9676K 长度498B

import java.util.Scanner;

public class Main {
    public static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        double x1,x2,y1,y2,Ans;
        while (sc.hasNext()){//这里不能用hasNextLine(),不然会WA
            x1 = sc.nextDouble();
            y1 = sc.nextDouble();
            x2 = sc.nextDouble();
            y2 = sc.nextDouble();
            Ans = Math.sqrt(Math.pow(x1 - x2,2.0) + Math.pow(y1 - y2,2.0));
            System.out.printf("%.2f%n",Ans);
        }
    }
}

本文作者 CSDN@扶她小藜
个人主页链接 https://blog.csdn.net/weixin_44579869

发布了15 篇原创文章 · 获赞 2 · 访问量 734

猜你喜欢

转载自blog.csdn.net/weixin_44579869/article/details/90690356
今日推荐