正方形检测 (暴力枚举)

正方形检测

链接:https://ac.nowcoder.com/acm/problem/21842
来源:牛客网

题目描述
给你平面直角坐标系中的四个点,判断这四个点是否构成一个正方形
输入描述:
第一行输入四个整数x_ix i (0 \le x_i \le 100000≤x i​ ≤10000)
第二行输入四个整数y_iy i (0 \le y_i \le 100000≤y i≤10000)
输出描述:
如果可以构成正方形,输出"It’s a square"
否则输出"Not a square"
示例1
输入

0 0 2 2
0 2 0 2

输出

It's a square

示例2
输入

0 1 5 6
1 6 0 5

输出

It's a square

示例3
输入

0 0 7 7
0 3 0 3

输出

Not a square

思路 : 暴力枚举每一条边,然后排序比较

AC代码

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int a[4],b[4];
int ans[10];
int main(){
    for(int i = 0;i < 4;i ++) cin >> a[i];
    for(int i = 0;i < 4;i ++) cin >> b[i];
    int idx = 0;
    for(int i = 0;i < 4;i ++){
        for(int j =i + 1;j < 4;j ++){
            ans[idx ++] = (a[i] - a[j]) * (a[i] - a[j]) + (b[i] - b[j]) * (b[i] - b[j]);
        }
    }
    sort(ans,ans + 6);
    if(ans[0] == ans[1] && ans[1] == ans[2] && ans[2] == ans[3] && ans[4] == ans[5]){
        cout << "It's a square" << endl;
    }else
        cout << "Not a square" << endl;
    return 0;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值