以下是九度oj题目1048判断三角形类型的完整攻略:
题目描述
给定三个正整数a、b、c,判断它们能否构成一个三角形,并判断三角形的类型。
输入格式
输入三个正整数a、b、c,表示三角形的三条边长。
输出格式
如果能够构成三角形,则输出三角形的类型,包括等边三角形、等腰三角形和普通三角形。如果不能构成三角形,则输出“Not a triangle”。
数据范围
1≤a,b,c≤1000
输入样例
3 3 3
输出样例
Equilateral triangle
算法
本题可以使用以下算法来解决:
- 判断三角形是否存在:如果三条边长中最大的一条边小于其他两条边的和,则可以构成一个三角形。
- 判断三角形的类型:如果三条边长相等,则为等边三角形;如果有两条边长相等,则为等腰三角形;否则为普通三角形。
示例
以下是两个示例,演示了如何使用上述算法解决本题。
示例一
输入:
3 3 3
输出:
Equilateral triangle
解释:
由于三条边长都相等,因此可以构成一个等边三角形。
示例二
输入:
3 4 5
输出:
Ordinary triangle
解释:
由于3+4>5,4+5>3,5+3>4,因此可以构成一个三角形。由于三条边长不相等,因此为普通三角形。
代码
以下是C++代码示例:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
if (a + b > c && a + c > b && b + c > a)
{
if (a == b && b == c)
cout << "Equilateral triangle" << endl;
else if (a == b || a == c || b == c)
cout << "Isosceles triangle" << endl;
else
cout << "Ordinary triangle" << endl;
}
else
cout << "Not a triangle" << endl;
return 0;
}
以下是Python代码示例:
a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
if a == b == c:
print("Equilateral triangle")
elif a == b or a == c or b == c:
print("Isosceles triangle")
else:
print("Ordinary triangle")
else:
print("Not a triangle")
总结
本文介绍了九度oj题目1048判断三角形类型的完整攻略,包括题目描述、输入输出、算法思路和C++/Python代码。通过本文的介绍,读者可以更好地理解如何判断三角形是否存在以及如何判断三角形的类型,从而在实际开发中更加灵活地使用这些算法。