【洛谷】P5717题解

首先,在给定三个边长度的情况下,锐角、钝角、直角三角形只会出现一个,因此我们要把他放在同一个判断情况下

其次要判断是否是三角形,必须满足任意两边之和大于第三边

再者,网上的博客说锐角三角形判断方法为最长边的平方小于其余两条平方和,钝角三角形判断方法为最长边平方大于其余两条平方和

我们当然可以对三边进行排序(我刚开始没想到,再根据上述描述算即可

或者根据余弦定理,

余弦定律-百度百科

当三个角α,β,γ均为锐角必为锐角三角形,即为

       a*a+b*b >c*c  && a*a+c*c >b*b  &&  b*b+c*c>a*a

只要α,β,γ其中一个角大于90°,必为钝角,即cosγ(cosα/β)<0

即为

      a*a+b*b <c*c||a*a+c*c <b*b || b*b+c*c<a*a

综上所述,代码如下

#include

#include

#include

#include

#include

#include

using namespace std;

int main(){
int a,b,c;

cin >>a>>b>>c;

if(a+b <=c ||a+c<=b || b+c <=a )
                              
{
	cout <<"Not triangle";
            
	return 0;
            
}
else if(a*a+b*b ==c*c ||a*a+c*c ==b*b || b*b+c*c==a*a)
            
cout <<"Right triangle"<<endl;	
                              
else if(a*a+b*b >c*c&&a*a+c*c >b*b&&b*b+c*c>a*a)

cout <<"Acute triangle"<<endl;

else if(a*a+b*b <c*c||a*a+c*c <b*b || b*b+c*c<a*a)
                                                   
cout <<"Obtuse triangle"<<endl;
                                 


if(a==b||a==c||b==c)
                               
cout <<"Isosceles triangle"<<endl;
                                  
if(a==b&&b==c)
                                  
cout <<"Equilateral triangle"<<endl;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值