我有一个程序可以确定三角形是否为钝角三角形。程序指示用户输入 3 个边长值 (s1,s2,s3)。如果较小的两个边长值的平方值小于最大边值的平方值,则它是一个钝角三角形。
例如:
s1 = 3,s2 = 5,s3 = 9
3^2 + 5^2 < 9^2
34 < 81
这是一个钝角三角形。
我有两个版本的程序,如下所示,它们都提供相同的输出。我的问题是哪个更有效?还是有比我的两个版本更有效的另一个版本?
版本 1:
double s1,s2,s3;
cout << "Enter three numbers -> ";
cin >> s1 >> s2 >> s3;
if (max(max(s1,s2),s3) == s1){
if(pow(s2,2)+pow(s3,2) < pow(s1,2)){
cout << "This is an obtuse triangle";
} else {
cout << "Not an obtuse triangle";
}
} else if (max(max(s1,s2),s3) == s2){
if(pow(s1,2)+pow(s3,2) < pow(s2,2)){
cout << "This is an obtuse triangle";
} else {
cout << "Not an obtuse triangle";
}
} else {
if(pow(s1,2)+pow(s2,2) < pow(s3,2)){
cout << "This is an obtuse triangle";
} else {
cout << "Not an obtuse triangle";
}
}
版本 2:
double s1,s2,s3;
cout << "Enter three numbers -> ";
cin >> s1 >> s2 >> s3;
if( max(s1,s2) < s3){
if(pow(s1,2) + pow(s2,2) < pow(s3,2)){
cout << "This is an obtuse triangle";
} else {
cout << "Not an obtuse triangle";
}
} else {
if(pow(min(s1,s2),2) + pow(s3,2) < pow(max(s1,s2),2)){
cout << "This is an obtuse triangle";
} else {
cout << "Not an obtuse triangle";
}
}