必威体育Betway必威体育官网
当前位置:首页 > IT技术

【牛客网】直角三角形(代码)

时间:2019-10-16 19:15:39来源:IT技术作者:seo实验室小编阅读:68次「手机版」
 

直角三角形

题目描述

创建一个CTriangle 类,需要用到第二题中创建的类,即用3点来代表一个三角形,输入三个点的坐标,实现判断此三角形是不是直角三角形,并输出此三角形的周长。

输入描述:

输入第一行为样例数m,接下来m行每行6个整数分别表示三个点的横纵坐标。

输出描述:

对于每个样例输出两行,第一行根据是否直角三角形输出Yes或No,第二行输出三角形的周长,保留小数点后两位。

示例1

输入

1

0 0 3 0 0 4

输出

Yes

12.00

思路:算出点之间的距离,用勾股定理判断。

#include <iOStream>
#include <cmath>
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;
}

相关阅读

网络红人周扬青的淘宝店

网络红人周扬青是罗志祥的现任女友,周扬青的淘宝店在淘宝商城上还是比较受欢迎的。那么周扬青的淘宝店地址在哪里?主要卖什么商品

电影《社交网络》中有哪些IT创业的TIPS!

《社交网络》是一部改编自本·麦兹里奇的小说《意外的亿万富翁:Facebook的创立,一个关于性、金钱、天才和背叛的故事》,由大卫 · 芬

无线承载网络“组或资源的状态不是执行请求操作的正确

在使用win 7 无线承载网络时,启动该服务时,有时会提示:组或资源的状态不是执行请求操作的正确状态。网上有文章指出,解决这个问题的方

【整理收集】那些神器级别的BT磁力搜索网站

对于我喜欢和常用的网站我会特别介绍一下的,其他大家自己看着办吧。还有一点,一般专门的BT论坛会比这些搜索引擎收录快,发布站式的BT

UDP/TCP网络传输方式

网络传输方式 1.面向无连接型: 不要求建立和断开连接,发送端可于任何时候自由发送数据. 反之, 接收端也永远不知道自己会在何时从

分享到:

栏目导航

推荐阅读

热门阅读