首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

NEFU要突起——第16场 A - Triangle

2013-01-26 
NEFU要崛起——第16场A - Triangle一个给定三角形的3个坐标,判断是否是直角三角形,并且如果某一个点移动一位

NEFU要崛起——第16场 A - Triangle

一个给定三角形的3个坐标,判断是否是直角三角形,并且如果某一个点移动一位后,能组成直角三角形,则输出ALMOST

注意一点就是我根据勾股定理判断的直角三角形,但是,如果三点在同一点上,同样满足A+B=C,但不是三角形,所以要给出判断


#include <iostream>using namespace std;int x[3],y[3];int f(int a){return a*a;}bool right(){int a,b,c;a=f(x[0]-x[1])+f(y[0]-y[1]);b=f(x[1]-x[2])+f(y[1]-y[2]);c=f(x[2]-x[0])+f(y[2]-y[0]);    if(a==0||b==0||c==0)//如果三点在同一点上     return false;     if(a+b==c||a+c==b||b+c==a) return true; else return 0;}int main(){for(int i=0;i<3;i++)cin>>x[i]>>y[i];if(right()){cout<<"RIGHT"<<endl;return 0;}else{int cc=0;for(int i=0;i<3;i++){for(int j=-1;j<2;j++){x[i]+=j;if(right())cc=1;x[i]-=j;y[i]+=j;if(right())cc=1;y[i]-=j;}}if(cc==1){cout<<"ALMOST"<<endl;return 0;}}cout<<"NEITHER"<<endl;return 0;}



热点排行