当前位置: 面试刷题>> 判断三角形 (经典算法题500道)


### 题目描述补充 题目:**判断三角形的类型** 给定三个正整数a、b、c,它们分别代表三角形的三条边长。请编写一个程序来判断由这三条边组成的三角形是什么类型。三角形可能的类型包括: 1. **等边三角形**:三边长度都相等。 2. **等腰三角形**:有两边长度相等。 3. **直角三角形**:满足勾股定理(即最长边的平方等于其他两边的平方和)。 4. **一般三角形**:不满足上述任何条件。 如果给定的三条边不能构成三角形(即不满足任意两边之和大于第三边的条件),则输出“不能构成三角形”。 ### 示例代码 #### PHP示例 ```php ``` #### Python示例 ```python def determine_triangle_type(a, b, c): # 检查是否能构成三角形 if a + b <= c or a + c <= b or b + c <= a: return "不能构成三角形" # 排序 sides = sorted([a, b, c]) # 判断三角形类型 if sides[0] == sides[1] == sides[2]: return "等边三角形" elif sides[0] == sides[1] or sides[1] == sides[2]: return "等腰三角形" elif sides[0]**2 + sides[1]**2 == sides[2]**2: return "直角三角形" else: return "一般三角形" # 测试 print(determine_triangle_type(3, 4, 5)) # 直角三角形 print(determine_triangle_type(3, 3, 3)) # 等边三角形 print(determine_triangle_type(2, 2, 3)) # 等腰三角形 print(determine_triangle_type(1, 2, 3)) # 不能构成三角形 ``` #### JavaScript示例 ```javascript function determineTriangleType(a, b, c) { // 检查是否能构成三角形 if (a + b <= c || a + c <= b || b + c <= a) { return "不能构成三角形"; } // 排序 const sides = [a, b, c].sort((x, y) => x - y); // 判断三角形类型 if (sides[0] === sides[1] && sides[1] === sides[2]) { return "等边三角形"; } else if (sides[0] === sides[1] || sides[1] === sides[2]) { return "等腰三角形"; } else if (sides[0]**2 + sides[1]**2 === sides[2]**2) { return "直角三角形"; } else { return "一般三角形"; } } // 测试 console.log(determineTriangleType(3, 4, 5)); // 直角三角形 console.log(determineTriangleType(3, 3, 3)); // 等边三角形 console.log(determineTriangleType(2, 2, 3)); // 等腰三角形 console.log(determineTriangleType(1, 2, 3)); // 不能构成三角形 ``` **码小课网站中有更多相关内容分享给大家学习**,包括更深入的算法讲解、面试技巧等,欢迎大家访问学习。
推荐面试题