Java—相似三角形
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
Output
NO
YES
NO
Hint
输入的六个数据只是两个三角形的三条边,需要将前三个数排序(即第一个三角形的三条边),同理再将后三个数排序,为的是便于比较两个三角形三条有序长度的比例数,如果比例数一样就是相似三角形(前提三条边能够构成三角形)。
import java.util.Scanner;
class Point
{
int a,b,c;
Point(int a,int b,int c)
{
this.a=a;
this.b=b;
this.c=c;
}
void Sum(Point p)
{
double x=a*1.0/p.a;
double y=b*1.0/p.b;
double z=c*1.0/p.c;
if(b+c>a)
{
if(x==y&&y==z)
System.out.println("YES");
else
System.out.println("NO");
}
else
System.out.println("NO");
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader=new Scanner(System.in);
int a1,b1,c1,a2,b2,c2;
int temp;
while(reader.hasNext())
{
a1=reader.nextInt();
b1=reader.nextInt();
c1=reader.nextInt();
a2=reader.nextInt();
b2=reader.nextInt();
c2=reader.nextInt();
if(a1<b1)
{
temp=a1;
a1=b1;
b1=temp;
}
if(a1<c1)
{
temp=a1;
a1=c1;
c1=temp;
}
if(b1<c1)
{
temp=b1;
b1=c1;
c1=temp;
}
if(a2<b2)
{
temp=a2;
a2=b2;
b2=temp;
}
if(a2<c2)
{
temp=a2;
a2=c2;
c2=temp;
}
if(b2<c2)
{
temp=b2;
b2=c2;
c2=temp;
}
Point point1 =new Point(a1,b1,c1);
Point point2 =new Point(a2,b2,c2);
point2.Sum(point1);
}
}
}