Problem Description
给定三条边,请你判断一下能不能组成一个三角形。
Input
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000;
Output
对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。
Sample Input
2
1 2 3
2 2 2
Sample Output
NO
YES
判断三角形可通过任意两边之和大于第三边或任意两边之差小于第三边,所以只要只需对三个数据中任意两个数做加法(减法),判断两个数之和(差)是否大于(小于)第三边,若都满足则三边可以组成三角形否则不满足
代码
C++
#include<iostream>
using namespace std;
int main()
{
float a,b,c;//三角形三边长度不一定是正数,所以三边定义为浮点数
int n;
cin>>n;
while(n--)
{
cin>>a>>b>>c;
if(a+b>c&&a+c>b&&b+c>a)//判断三边是否满足条件
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
C语言
#include<stdio.h>
int main()
{
float A,B,C;
scanf("%f %f %f",&A,&B,&C);
if(A<1000&&B<1000&&C<1000)
if(A+B>C&&A+C>B&&B+C>A)
printf("YES\n");
else
printf("NO\n");
return 0;
}