相似三角形
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
给出两个三角形的三条边,判断是否相似。
Input
多组数据,给出6正个整数,a1,b1,c1,a2,b2,c2,分别代表两个三角形。(边长小于100且无序)
Output
如果相似输出YES,如果不相似输出NO,如果三边组不成三角形也输出NO。
Sample Input
1 2 3 2 4 6 3 4 5 6 8 10 3 4 5 7 8 10
Sample Output
NO YES NO
Hint
Source
注意三点:1.六个边要用double型,这样才能准确计算比例并且比较
2.排序完之后要将值从新赋给六个边的变量
3.Oj提交public类名要为Main且不要带包名等其他
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
double a, b, c, d, e, f;
double g[] = new double[3];
double h[] = new double[3];
Scanner input = new Scanner(System.in);
while(input.hasNext()) {
a = input.nextDouble();
b = input.nextDouble();
c = input.nextDouble();
d = input.nextDouble();
e = input.nextDouble();
f = input.nextDouble();
if((a+b<=c||b+c<=a||a+c<=b)||(d+e<=f||d+f<=e||f+e<=d)) {
System.out.println("NO");
}
else{
g[0] = a;
g[1] = b;
g[2] = c;
h[0] = d;
h[1] = e;
h[2] = f;
Arrays.sort(g);
Arrays.sort(h);
a = g[0];
b = g[1];
c = g[2];
d = h[0];
e = h[1];
f = h[2];
if(d > a) {
if(d/a==e/b&&d/a==f/c) {
System.out.println("YES");
}
else {
System.out.println("NO");
}
}
else {
if(a/d==b/e&&a/d==c/f) {
System.out.println("YES");
}
else {
System.out.println("NO");
}
}
}
}
}
}