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