3053. 根据长度分类三角形 🔒
题目描述
表:Triangles
+-------------+------+ | Column Name | Type | +-------------+------+ | A | int | | B | int | | C | int | +-------------+------+ (A, B, C) 是这张表的主键。 每一行包含三角形三边的长度。
编写一个查询来找到 三角形 的类型。对于每一行输出下面的其中一个:
- Equilateral:
3
边长度相同的三角形。 - Isosceles:
2
边长度相同的三角形。 - Scalene:
3
边长度不同的三角形。 - Not A Triangle:给定的
A
,B
,C
的值不能形成三角形。
以 任何顺序 返回结果表。
结果格式如下所示。
示例 1:
输入: Triangles 表: +----+----+----+ | A | B | C | +----+----+----+ | 20 | 20 | 23 | | 20 | 20 | 20 | | 20 | 21 | 22 | | 13 | 14 | 30 | +----+----+----+ 输出: +----------------+ | triangle_type | +----------------+ | Isosceles | | Equilateral | | Scalene | | Not A Triangle | +----------------+ 解释: - 第一行的值形成了等腰三角形,因为 A = B。 - 第二行的值形成了等边三角形,因为 A = B = C. - 第三行的值形成了斜三角形,因为 A != B != C. - 第四行中的值不能形成三角形,因为边 A 和边 B 的和不大于边 C。
解法
方法一:使用 CASE WHEN 语句
我们可以使用 CASE WHEN
语句来判断三角形的类型。
首先,我们需要判断三个边是否能够构成一个三角形。如果不能,我们返回 Not A Triangle
。
然后,我们判断三个边的长度是否相等。如果相等,我们返回 Equilateral
。
接着,我们判断是否有两个边的长度相等。如果有,我们返回 Isosceles
。
否则,说明三个边的长度都不相等,我们返回 Scalene
。
1 2 3 4 5 6 7 8 9 10 11 12 |
|