牛客OJ21842---正方形检测

简介: 牛客OJ21842---正方形检测

题目描述

20210605181817411.png

输入样例

0 0 2 2
0 2 0 2

输出样例

It's a square

样例2

0 0 7 7
0 3 0 3


输出样例

Not a square


思路:对于一个正方形,给出坐标我们可以每次选取两个点,一共有6种可能.

计算两个点之间的距离的平方,然后加入数组,对其进行排序.因为选取的四种情况都是相邻的点,最后平房之后结果也为边长的平方.还有两种是选取的对角线上的顶点,结果是对角线长度的平方.

最后判断前四个是否相等并且最后两项是否相等即可.


参考代码

#include<bits/stdc++.h>
using namespace std;
int X[4],Y[4],s[10],cnt,flag;
int main()
{
  flag = 1;
  for(int i = 0;i <4;i++){
    cin>>X[i];
  }
  for(int j = 0;j<4;j++){
    cin>>Y[j];
  } 
  for(int i = 0;i < 4;i++){//每次选取两个点   
    for(int j =i+1;j<4;j++){
      s[cnt++] = (X[i]-X[j])*(X[i]-X[j])+(Y[i]-Y[j])*(Y[i]-Y[j]);  
    }
  } 
  sort(s,s+6);
//  cout<<"======================"<<endl;
//  for(int i = 0; i < 6;i++){
//    cout<<s[i]<<"\t";
//  }
//  cout<<endl;
//  cout<<"======================"<<endl;
  if(s[0]==s[1]&&s[1]==s[2]&&s[2]==s[3] && s[4]==s[5]){
    cout<<"It's a square"<<endl;
  }else{
    cout<<"Not a square"<<endl;
  }
  return 0;
 } 
相关文章
|
7月前
【牛客网】BC51 三角形判断
【牛客网】BC51 三角形判断
42 0
|
7月前
【牛客网】BC68 X形图案
【牛客网】BC68 X形图案
66 0
|
7月前
|
算法
算法每日一题---两数之和
算法每日一题---两数之和
33 0
|
定位技术
【CCCC】L3-007 天梯地图 (30分),两次Dijkstra+路径打印(数据点2,4错因),90行最短题解
【CCCC】L3-007 天梯地图 (30分),两次Dijkstra+路径打印(数据点2,4错因),90行最短题解
186 0
|
6月前
|
C语言
【C语言刷题每日一题#牛客网BC69】——空心正方形图案
【C语言刷题每日一题#牛客网BC69】——空心正方形图案
|
6月前
|
C语言
【C语言刷题每日一题#牛客网BC68】——X形图案
【C语言刷题每日一题#牛客网BC68】——X形图案
[学习][笔记] qt5 从入门到入坟:<10>坐标系统
[学习][笔记] qt5 从入门到入坟:<10>坐标系统
每日一题 --- 2055. 蜡烛之间的盘子[力扣][Go]
每日一题 --- 2055. 蜡烛之间的盘子[力扣][Go]
每日一题 --- 2055. 蜡烛之间的盘子[力扣][Go]
|
Go Perl
每日一题---6. Z 字形变换[力扣][Go]
每日一题---6. Z 字形变换[力扣][Go]
每日一题---6. Z 字形变换[力扣][Go]