输入描述:
输出描述:
要判断三根木棒能否组成三角形,我们需要应用三角形的基本性质:任意两边之和大于第三边。
我们需要分别尝试将三根木棒中的每一根长度翻倍,判断修改后的三根木棒是否能够满足三角形的构成条件:
只要有一种方案能够构成三角形,答案就是 “Yes”,否则为 “No”。
#include
using namespace std;
#define int long long
signed main(){
int a,b,c;
cin>>a>>b>>c;
int d,e,f;
d=a*2,e=b*2,f=c*2;
if(d+b>c&&b+c>d&&d+c>b||e+a>c&&e+c>a&&a+c>e||f+a>b&&f+b>a&&a+b>f){
cout<<"Yes";
return 0;
}
else cout<<"No";
return 0;
}
a
, b
, c
存储三根木棒的原始长度d
, e
, f
分别表示三根木棒翻倍后的长度:
d = a*2
表示第一根木棒翻倍e = b*2
表示第二根木棒翻倍f = c*2
表示第三根木棒翻倍d
, b
, c
) 能否组成三角形,需满足 d+b>c && b+c>d && d+c>b
a
, e
, c
) 能否组成三角形,需满足 e+a>c && e+c>a && a+c>e
a
, b
, f
) 能否组成三角形,需满足 f+a>b && f+b>a && a+b>f
示例1: a=1, b=2, c=3
示例4: a=1, b=1, c=3
本题的关键是理解三角形的构成条件,并尝试对每根木棒进行翻倍操作,判断是否有可能满足三角形条件。通过枚举所有可能的情况,我们可以得到正确答案。