HDU-三角形

2018-12-09  本文已影响0人  一座城_WanG

三角形

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

Problem Description

给定三条边,请你判断一下能不能组成一个三角形。

Input

输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000;

Output

对于每个测试实例,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。

Sample Input

<pre style="font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; white-space: pre-wrap; word-wrap: break-word;">

2
1 2 3
2 2 2

</pre>

Sample Output

<pre style="font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; white-space: pre-wrap; word-wrap: break-word;">

NO
YES

</pre>

Author

linle

Source

2005实验班短学期考试

Recommend

lcy

问题链接(http://acm.hdu.edu.cn/showproblem.php?pid=2039)

问题简述:输入一个M值,则需要判断M个三条边得数据能否构成三角形,如果能,则输出“YES”,反之则输出“NO”;

问题分析:通过判断任意两边之和大于第三边且这两边的之差的绝对值小于第三边来判断给出的三条边的数据能否构成三角形。

程序分析:用if和&&及||符号对条件进行限制,从而到达目的

AC程序C++如下:

#include<iostream>
using namespace std;
int panduan(double &A, double& B, double& C)
{
    if ((A + B > C&&(A - B<C ||B-A<C))&&( A + C>B&&(A - C<B||C-A<B)) &&(B + C>A&&(B - C < A||C-B<A)))
    {
        return 1;
    }
    else return 0;
} 
int main()
{
    double A, B, C;
    int M;
    cin >> M;
    for (int i = 0; i < M; i++)
    {
        cin >> A >> B >> C;
        if (panduan(A, B, C))   cout << "YES" << endl;
        else cout << "NO" << endl;
    }
}
上一篇下一篇

猜你喜欢

热点阅读