2207 - 三角形
时间限制 : 1 秒
内存限制 : 128 MB
根据Miaowu高中所学的知识,三角形有分好几种:锐角三角形(acute triangle)、直角三角形(right triangle)、钝角三角形(obtuse triangle),现在给你三角形的三边,判定这个三角形是哪一种三角形,当然请注意了,也有可能这三条边构不成三角形哦~
题目输入
第一行输入一个数T,表示测试数据个数,对于每组测试数据,输入三个整数a,b,c (0<a,b,c<=10^4)。
题目输出
对于每组测试数据,如果三角形是锐角三角形,输出"ACUTE",如果是直角三角形,输出"RIGHT",如果是钝角三角形,输出"OBTUSE",如果无法组成三角形,输出"IMPOSSIBLE",注意,引号不要输出。
输入/输出样例
输入格式
4 3 4 5 3 4 4 3 4 6 7 4 3
输出格式
RIGHT ACUTE OBTUSE IMPOSSIBLE
C语言解答
#include<stdio.h> int max(int a,int b) { if(a>b) return a; else return b; } int min (int a,int b) { if(a>b) return b; else return a; } int main() { int T; scanf("%d",&T); while(T--) { int a,b,c,m,i,n,x; scanf("%d%d%d",&a,&b,&c); m=max(a,max(b,c)); i=min(a,min(b,c)); n=a+b+c-m-i; if(n+i>m&&m-n<i) { x=n*n+i*i-m*m; if(x==0) { printf("RIGHT\n"); } if(x>0) { printf("ACUTE\n"); } if(x<0) { printf("OBTUSE\n"); } } else { printf("IMPOSSIBLE\n"); } } }
C++解答
#include<stdio.h> int main() { int T; double a,b,c; scanf("%d",&T); while(T--) { scanf("%lf%lf%lf",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { if(a*a+b*b>c*c&&b*b+c*c>a*a&&a*a+c*c>b*b) { printf("ACUTE\n"); } else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b) { printf("RIGHT\n"); } else printf("OBTUSE\n"); } else { printf("IMPOSSIBLE\n"); } } return 0; }