由于小弟最近投了些公司的简历,大部分比赛都是在线编程,作为一个没有玩过acm的小白,屡屡受挫,每次在线编程都是AW,尽管本地编译貌似成功,结果正确,贴到上去也是AW。于是乎就开始试着去使用使用赛码网的练习题。
第一题 2001
小提示:java包含mian函数的类名要为class Mian{}
计算两点间的距离
Problem Description
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
Output
对于每组输入数据,输出一行,结果保留两位小数。
Sample Input
0 0 0 1
0 1 1 0
Sample Output
1.00
1.41
一道很简单的题目,随手用java实现了一番,本地运行貌似没什么问题,贴上去AW
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
double d[]=new double[4];
for (int i = 0; i < d.length; i++)
d[i]=sc.nextDouble();
double result=(Math.sqrt(Math.pow(d[2] - d[0], 2) + Math.pow(d[3] - d[1], 2)));
System.out.printf("%.2f", result);
System.err.println();
}
}
}
整来整去还是AW,无奈,网上搜到前人的正确代码,贴出来看看。
import java.io.BufferedInputStream;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner s = new Scanner(new BufferedInputStream(System.in));
double[] d = new double[4];
while(s.hasNext()) {
for(int i=0; i<4; ++i)
d[i] = s.nextDouble();
double tp = (d[0]-d[2])*(d[0]-d[2])+(d[1]-d[3])*(d[1]-d[3]);
double ttp = Math.sqrt(tp);
System.out.printf("%.2f", ttp);
System.out.println();
}
}
}
还是没弄清楚自己的是那里错了,,,甚是郁闷,,那位兄弟看出来了吼我一声哈,,看下下次要试着用C来实施了。