标签:练习题 lf PAT Level No Yes 任意 三角形 输入
题目描述
给定三条边,请你判断一下能不能组成一个三角形。
输入描述:
输入包含多组数据,每组数据包含三个正整数a、b、c(1≤a, b, c≤10^100)。
输出描述:
对应每一组数据,如果它们能组成一个三角形,则输出“Yes”;否则,输出“No”。
输入例子:
1 2 3
2 2 2
输出例子:
No
Yes
解题思路:
对三角形判断成立条件,学过一点小学数学的都知道任意两条边之和大于第三边
,不过还有另外一种判定方式任意两边之差小于第三边
,其实两者核心思想是一样的,只是判断形式不同,比如a + b > c
,可以称为 a > c - b
或者 b > c - a
。
由于数据比较大,这里我们采用任意两边之差小于第三边
的方式进行判断。
注意:由于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;
}
标签:练习题,lf,PAT,Level,No,Yes,任意,三角形,输入 来源: https://blog.csdn.net/qq_41855420/article/details/104699291
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。