件名の説明は
三辺、あなたが三角形を形成することができないかを判断を与えられました。
説明入力:
複数組を含むデータの入力、3つの正の整数、B、C(1≤a含むデータの各セット B、c≤10^ 100)。
出力説明:
彼らは三角形を形成することができる場合、データの各セットに対応し、出力「はい」、そうでない場合、出力は「いいえ」。
入力例:
1 2 3
2 2 2
出力例:
No
Yes
条件を決定し、三角形を設定するには、小さな小学校の数学を学んだ知っている任意两条边之和大于第三边
が、決定する別の方法があります任意两边之差小于第三边
実際には、両方のコアアイデアは判決の同じ、ちょうど異なる形で、例えばa + b > c
、呼び出すことができますa > c - b
かb > c - a
。
データが比較的大きいので、ここでは使用任意两边之差小于第三边
判決の道を。
注:のために3つの条件と同等で繰り返して書き込むことはできません。a > c - b
b > c - a
#include <iostream>
using namespace std;
int main() {
//注意输入范围是10^100级别,所以int、long long类型会超出
double a = 0, b = 0, c = 0;
//scanf返回值为正确输入数据的变量个数,当一个变量都没有成功获取数据时,此时返回-1
while (scanf("%lf %lf %lf", &a, &b, &c) != - 1) {
//a < b + c, b < a + c, c < b + a任意两边之和大于第三版(任意两边之差小于第三边,注意别写重复了)
//a > c - b 与 b > c - a 都是判断 a + b > c
if (a - b < c && b - c < a && c - a < b) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}