正方形

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

Output
 每组数据输出一行,如果是正方形,则输出: YES, 否则,输出:NO。
Example Input
20 0 1 0 1 1 0 1-1 0 0 -2 1 0 2 0
Example Output
YESNO
Hint
import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		cin.nextLine();
		for (int i = 0; i < n; i++) {
			String str = cin.nextLine();
			String str1[] = str.split(" ");
			// System.out.println(str1.toString());
			int a[] = new int[8];
			for (int j = 0; j < 8; j++) {
				a[j] = Integer.parseInt(str1[j]);
				//System.out.println(a[j]);
			}
			square(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]);
		}
	}

	public static void square(int x1, int y1, int x2, int y2, int x3, int y3,
			int x4, int y4) {

		if (((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1)) == ((x2 - x1)
				* (x2 - x1) + (y2 - y1) * (y2 - y1))
				+ ((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2))
				&& ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)) == ((x3 - x2)
						* (x3 - x2) + (y3 - y2) * (y3 - y2)))

			System.out.println("YES");

		else
			System.out.println("NO");

	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值