当前位置: 面试刷题>> 判断三角形 (经典算法题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)); // 不能构成三角形
```
**码小课网站中有更多相关内容分享给大家学习**,包括更深入的算法讲解、面试技巧等,欢迎大家访问学习。