相似三角形
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
给出两个三角形的三条边,判断是否相似。
Input
多组数据,给出6正个整数,a1,b1,c1,a2,b2,c2,分别代表两个三角形。(边长小于100且无序)
Output
如果相似输出YES,如果不相似输出NO,如果三边组不成三角形也输出NO。
Example Input
1 2 3 2 4 6 3 4 5 6 8 10 3 4 5 7 8 10
Example Output
NO YES NOimport java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner (System.in); while( in.hasNext() ) { int i, j, x; int []a = new int[10]; for( i=0; i<3; i++ ) a[i] = in.nextInt(); for( i=0; i<3; i++ ) for( j=i+1; j<3; j++ ) if( a[i]>a[j] ){ x = a[i]; a[i] = a[j]; a[j] = x; } Triangle t1 = new Triangle ( a[0], a[1], a[2] ); for( i=3; i<6; i++ ) a[i] = in.nextInt(); for( i=3; i<6; i++ ) for( j=i+1; j<6; j++ ) if( a[i]>a[j] ){ x = a[i]; a[i] = a[j]; a[j] = x; } Triangle t2 = new Triangle ( a[3], a[4], a[5] ); if( t1.isTriangle() && t2.isTriangle() && t1.isSame(t2)){ System.out.println("YES"); } else System.out.println("NO"); } in.close(); } } class Triangle{ int a, b, c; Triangle () {} public Triangle ( int x, int y, int z ){ this.a = x; this.b = y; this.c = z; } public boolean isTriangle(){ boolean t = false; if( a+b>c && a+c>b && b+c>a ) t = true; return t; } public boolean isSame( Triangle t ){ boolean f = false; if( a*t.b==b*t.a && a*t.c==c*t.a ) f = true; return f; } }