HDU 2039

来源:互联网 发布:java带类路径启动 编辑:程序博客网 时间:2024/06/06 01:05

三角形

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 90518 Accepted Submission(s): 30082

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

Author
linle

Source
2005实验班短学期考试

试题分析:
这道题并不是一个很难得问题,解决这道题需要注意优化算法,否者容易出现超时现象。另外a、b、c不一定是整数,这点很容易忽略。

代码如下:

#include<stdio.h>int main(){    double a,b,c;    int m,i;    scanf("%d",&m);    for(i=0;i<m;i++)    {        scanf("%lf%lf%lf",&a,&b,&c);        if(a+b>c&&a+c>b&&c+b>a) printf("YES\n");        else printf("NO\n");    }    return 0;}

错误代码如下:

#include<stdio.h>int main(){    double a,b,c;    int m,i    while(scanf("%d",&m)!=EOF)        for(i=0;i<m;i++)        {            scanf("%lf%lf%lf",&a,&b,&c);            if(a+b>c)            {                if(a+c>b)                {                    if(c+b>a) printf("YES\n");                    else printf("N0\n");                }                else printf("N0\n");            }            else printf("N0\n");        }    return 0;}
原创粉丝点击