三角形(triangle)–算法竞赛入门经典习题1-6:输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。如果可以输出yes,否则输出no。如果根本无法构成三角形,输出not a triangle。(C++实现)
思路:
1.先解决满足三角形的条件,两条较小边之和大于第三边。
2.判断是否满足直角三角形的条件,a2=b2+c2.
#include<iostream>
#include <cstdlib>
using namespace std;
int main()
{
int a,b,c;
float s = 0;
cout << "请输入三角形三边长度:" << endl;
cin >> a>>b>>c;
if (((c > a && c > b) && (a + b > c)) || ((b > a && b > c) && (a + c > b)) || ((a > b && a > c)&&(b + c > a)))
{
if (pow(a, 2) == pow(b, 2) + pow(c, 2) || pow(b, 2) == pow(a, 2) + pow(c, 2) || pow(c, 2) == pow(b, 2) + pow(a, 2))
cout << "Yes" << endl;
else
cout << "no" << endl;
}
else
cout << "not a triangle" << endl;
return 0;
}
运行结果如下:
1.失败的数字
2.符合要求的数字,但不符合直角
3.符合要求的直角三角形,经典的勾三股四弦五。