1564:等腰三角形

1564:等腰三角形
时间限制: 1 S | 内存限制: 8192 KB
Accept: 96 | Submit: 283
[提交] [状态] [我的提交] [讨论版]
描述
已知平面直角坐标系上三个互不相同的点的坐标,问这三个点是否能构成等腰三角形?(等边三角形也算一种等腰三角形)

输入
多组案例。一个正整数n,表示案例的数量。(n<=20)

每组案例由六个整数组成,代表第一个点的横坐标和纵坐标、第二个点的横坐标和纵坐标、第三个点的横坐标和纵坐标。(绝对值均不大于1000)

输出
针对每组案例,如果三个点能构成等腰三角形,那么输出Yes,否则输出No。

每组案例输出完都要换行。

样例输入
3

1 0 3 0 2 -2

1 0 2 0 3 0

1 0 0 0 0 2

样例输出
Yes

No

No

HINT
来源
20-21(2)第4次线上赛

        
#include <iostream>
using namespace std;
int main() 
{
	int n;
	double a[6];
	int b[3];
	cin >> n;
	while (n--)
	{
		for (int i = 0; i < 6; i++)
		{
			cin >> a[i];
		}
		double m = (a[0] - a[4]) / (a[1] - a[5]);
		double m1 = (a[0] - a[2]) / (a[1] - a[3]);
		double m2 = (a[4] - a[2]) / (a[5] - a[3]);
		if (m==m1||m==m2||m1==m2)
		{
			cout << "No" << endl;
		}
		else
		{
			b[0] = (a[0] - a[2]) * (a[0] - a[2]) + (a[1] - a[3]) * (a[1] - a[3]);
			b[1] = (a[0] - a[4]) * (a[0] - a[4]) + (a[1] - a[5]) * (a[1] - a[5]);
			b[2] = (a[2] - a[4]) * (a[2] - a[4]) + (a[5] - a[3]) * (a[5] - a[3]);
			if (b[0] == b[1] || b[0] == b[2] || b[1] == b[2])
			{
				cout << "Yes" << endl;
			}
			else
			{
				cout << "No" << endl;
			}
		}
	}
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值