AcWing 666. 三角形类型

读取表示三角形三条边的 33 个浮点数 A,B𝐴,𝐵 和 C𝐶 并按降序排列,使 A𝐴 边是三边中最大的一边。

接下来,根据以下情况,确定它们可以组成的三角形类型:

  • 如果 A≥B+C𝐴≥𝐵+𝐶,则说明三条边不能构成三角形,请输出:NAO FORMA TRIANGULO
  • 否则,说明三条边可以构成三角形,然后按如下情况输出:
    • 如果A2=B2+C2𝐴2=𝐵2+𝐶2,请输出:TRIANGULO RETANGULO
    • 如果A2>B2+C2𝐴2>𝐵2+𝐶2,请输出:TRIANGULO OBTUSANGULO
    • 如果A2<B2+C2𝐴2<𝐵2+𝐶2,请输出:TRIANGULO ACUTANGULO
    • 如果三个边长度都相同,请输出:TRIANGULO EQUILATERO
    • 如果只有两个边长度相同而第三个边长度不同,请输出:TRIANGULO ISOSCELES
输入格式

共一行,包含三个浮点数 A,B,C𝐴,𝐵,𝐶。

输出格式

输出 A,B,C𝐴,𝐵,𝐶 组成的三角形的类型。

注意,上述条件可能满足不止一条,这种情况下将所有类型名称,按题目介绍顺序输出,每行输出一条。

数据范围

0<A,B,C≤10.00<𝐴,𝐵,𝐶≤10.0

输入样例:
7.0 5.0 7.0
输出样例:
TRIANGULO ACUTANGULO
TRIANGULO ISOSCELES

代码: 

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
/*  double a,b,c,d,e,f,m,n,o;
    cin>>a>>b>>c;
    d=max(a,b);
    m=max(d,c);
    e=min(a,b);
    n=min(e,c);
    f=a+b+c;
    o=f-m-n;*/
    double m,n,o;
    cin>>m>>n>>o;
    if(m<o) swap(m,o);
    if(m<n) swap(m,n);
    if(o<n) swap(o,n);
    if(m>=n+o) cout<<"NAO FORMA TRIANGULO"<<endl;
    else
    {
        if(m*m==n*n+o*o) cout<<"TRIANGULO RETANGULO"<<endl;
        if(m*m>n*n+o*o) cout<<"TRIANGULO OBTUSANGULO"<<endl;
        if(m*m<n*n+o*o) cout<<"TRIANGULO ACUTANGULO"<<endl;
        if(m==n&&m==o) cout<<"TRIANGULO EQUILATERO"<<endl;
        if((m==n&&n!=o)||(m!=n&&n==o)||(m==o&&o!=n)) cout<<"TRIANGULO ISOSCELES"<<endl;
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值