【牛客网】直角三角形(代码)
题目描述
创建一个CTriangle 类,需要用到第二题中创建的类,即用3点来代表一个三角形,输入三个点的坐标,实现判断此三角形是不是直角三角形,并输出此三角形的周长。
输入描述:
输入第一行为样例数m,接下来m行每行6个整数分别表示三个点的横纵坐标。
输出描述:
对于每个样例输出两行,第一行根据是否直角三角形输出Yes或No,第二行输出三角形的周长,保留小数点后两位。
示例1
输入
1
0 0 3 0 0 4
输出
Yes
12.00
思路:算出点之间的距离,用勾股定理判断。
#include
#include
using namespace std;
class CTriangle{public:int x1,x2,x3;int y1,y2,y3;CTriangle(){}CTriangle(int a,int b,int c,int d,int e,int f){x1 = a;y1 = b;x2 = c;y2 = d;x3= e;y3 = f;}double SumDis(int a,int b,int c,int d){return (sqrt(1.0*((a-c)*(a-c))+(1.0*(b-d)*(b-d))));}void print(){double len1 = SumDis(x1,y1,x2,y2);double len2 = SumDis(x2,y2,x3,y3);double len3 = SumDis(x3,y3,x1,y1);if(len1 > len3){swap(len1,len3);}if(len2 > len3){swap(len2,len3);}if((len1*len1)+(len2*len2) == len3*len3){cout << "Yes" << endl;}else{cout << "No" << endl;}double ret = len1+len2+len3;printf("%.2lf\n",ret);}
};
int main()
{int n;cin >> n;for(int i = 0; i < n; i++){int a,b,c,d,e,f;cin >> a >>b >>c >>d >>e >>f;CTriangle ret(a,b,c,d,e,f);ret.print();}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
