zoukankan      html  css  js  c++  java
  • Java练习 SDUT-2444_正方形

    正方形

    Time Limit: 1000 ms Memory Limit: 65536 KiB

    Problem Description

    给出四个点,判断这四个点能否构成一个正方形。

    Input

    输入的第一行包含一个整数T(T≤30)表示数据组数,每组数据只有一行,包括8个整数x1, y1, x2, y2,x3,y3,x4,y4(数据均在-1000,1000 之间)以逆时针顺序给出四个点的坐标。

    Output

    每组数据输出一行,如果是正方形,则输出: YES, 否则,输出:NO。

    Sample Input

    2
    0 0 1 0 1 1 0 1
    -1 0 0 -2 1 0 2 0

    Sample Output

    YES
    NO

    题解:根据正方形的判定公式,对角线相等且垂直,来判断是不是正方形。

    import java.util.*;
    
    public class Main {
    	public static void main(String[] agrs)
    	{
    		Scanner cin = new Scanner(System.in);
    		point a,b,c,d;
    		int t;
    		t = cin.nextInt();
    		while(t-->0)
    		{
    			a = new point();
    			b = new point();
    			c = new point();
    			d = new point();
    			a.x = cin.nextInt();
    			a.y = cin.nextInt();
    			b.x = cin.nextInt();
    			b.y = cin.nextInt();
    			c.x = cin.nextInt();
    			c.y = cin.nextInt();
    			d.x = cin.nextInt();
    			d.y = cin.nextInt();
    			if(judge(a,b,c,d)==1)
    				System.out.println("YES");
    			else
    				System.out.println("NO");
    		}
    		cin.close();
    	}
    	static int judge(point a,point b,point c,point d)
    	{
    		int x,y;
    		x = (a.x-c.x) * (a.x-c.x) + (a.y-c.y) * (a.y-c.y);
    		y = (b.x-d.x) * (b.x-d.x) + (b.y-d.y) * (b.y-d.y);
    		if(x==y&&((a.x-c.x) * (b.x-d.x)==-((a.y-c.y) * (b.y-d.y))))
    			return 1;
    		return 0;
    	}
    }
    
    class point
    {
    	int x,y;
    }
    
  • 相关阅读:
    过滤选择器——简单过滤选择器
    层次选择器
    选择器——2——基本选择器
    This is a secret
    iframe加载问题
    懒加载
    biubiubiu
    使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性
    HTML中       等6种空白空格的区别
    ASP.NET 4.0的ClientIDMode属性
  • 原文地址:https://www.cnblogs.com/luoxiaoyi/p/9883958.html
Copyright © 2011-2022 走看看