hdu 3817

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
 int main()
 {
     int t;
     int a[3];
     while(~scanf("%d",&t)) 
     {
         for(int i=1;i<=t;i++)
         {
             scanf("%d%d%d",&a[0],&a[1],&a[2]);
             sort(a,a+3);
             if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2])
             {
                 printf("Case %d: Right triangle\n",i);
                 continue;
             }
             if(a[0]*a[0]+a[1]*a[1]<a[2]*a[2])
             {
                 printf("Case %d: Obtuse triangle\n",i);
                 continue;
             }
             if(a[0]*a[0]+a[1]*a[1]>a[2]*a[2])
             {
                 printf("Case %d: Acute triangle\n",i);
                 continue;
             }
         }
     }
     return 0;
 }

 

只需判断锐角或钝角或直角;

设三角形最长边为c  其余两边分别为a b  则
若a^2+b^2=c^2  直角三角形(勾股定理逆定理)
若a^2+b^2>c^2  锐角三角形
若a^2+b^2<c^2  钝角三角形
设1中三边对应的角分别为A、B、C  则
若A=90度  直角三角形
若A>90度  钝角三角形
若A<90度且A为最大角  锐角三角形
若有a=b或(a-b)(b-c)(c-a)=0,  则△ABC为等腰三角形
若有(a-b)2+(b-c)2+(c-a)2=0,  则△ABC为等边三角形
若有(a2-b2)( a2+b2-c2)=0,  则△ABC为等腰三角形或直角三角形
若有a=b且 a2+b2=c2,  则△ABC为等腰直角三角形
若有sin2A+sin2B=sin2C或sinA=sinB,   则△ABC为直角三角形或等腰三角形
若有cosA>0,或tanA>0,(其中∠A为△ABC中的最大角)    则△ABC为锐角三角形
若有cosA<0,或tanA<0,(其中∠A为△ABC中的最大角),    则△ABC为钝角三角形
若有两个(或三个)同名三角函数值相等(如tanA=tanB,    则△ABC为等腰三角形(或等边三角形)
若有特殊的三角函数值,则按特殊角来判断,如cosA=,b=c,则△ABC为等边三角形

 

posted @ 2017-05-16 16:03  亓天大圣  阅读(168)  评论(0编辑  收藏  举报