hrbust2214 Judge
来源:互联网 发布:项目管理协作软件 编辑:程序博客网 时间:2024/06/11 06:14
题目:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2214
题意:输入4个点的坐标,判断是否能组成一个正方形.
说明:求出6条边长,判断对角线相等并且4条边相等(至少三条边)
坑:4个点有相等的情况,这时不能组成一个正方形
#include<stdio.h>#include<iostream>#include<math.h>#include<algorithm>using namespace std;double calculate(double x1,double y1,double x2,double y2){//此函数用于计算俩点的 边 double res; res = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); return res;}int main(){ double ax,ay,bx,by,cx,cy,dx,dy; while(cin >>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy){ if(ax==bx&&ax==cx&&ax==dx&&ay==by&&ay==cy&&ay==dy) {//如果这四个点重合,则不能构成正方形 cout <<"No\n"; continue; } double bian[6]; bian[0]=calculate(ax,ay,bx,by); bian[1]=calculate(ax,ay,cx,cy); bian[2]=calculate(ax,ay,dx,dy); bian[3]=calculate(bx,by,cx,cy); bian[4]=calculate(bx,by,dx,dy); bian[5]=calculate(cx,cy,dx,dy); sort(bian,bian+6); //如果对角线相等,并且,至少三条边相等(如果选俩条,可能是对边) if(bian[4]==bian[5] && bian[0]==bian[1] &&bian[0]==bian[2]) cout << "Yes\n"; else cout << "No\n"; } return 0;}
0 0
- hrbust2214 Judge
- judge
- Judge
- Online Judge
- Hangman Judge
- Online Judge
- Hangman Judge
- Hangman Judge
- Hangman Judge
- Hangman Judge
- Hangman Judge
- HDU_1073Online Judge
- Online Judge
- Online Judge
- Hangman Judge
- Hangman Judge
- Online Judge
- Hangman Judge
- LEETCODE: Valid Palindrome
- 新年,一切都是新的开始!第一篇IT博文,坚持下去!
- Julia之BloomFilters的使用
- 代理设计模式
- Ubuntu下使用记录
- hrbust2214 Judge
- JAVA复制图片
- [leetcode 152] Maximum Product Subarray
- uva11258(DP)
- 什么叫做感恩
- printf("%d,%d",*ptr,*(++ptr))的输出语句是从右到左的,所以结果都为,8,8
- 类加载器的说明
- Coding4Fun.Controls的ToastPrompt小用
- 基于servlet的方式实现文件上传