在 C++ 中找到直角三角形的另外两条边
在这个问题中,我们给定一个整数 a 表示直角三角形的一侧。我们需要检查是否有可能有一个边为 a 的直角三角形。如果可能,请找出直角三角形的另外两条边。
让我们举个例子来理解这个问题,
输入
a = 5输出结果
Sides : 5, 12, 13
解释
直角的边被发现为 5 2 + 12 2 = 13 2
解决方法
该问题的一个简单解决方案是使用勾股定理。我们知道直角三角形的边遵循勾股定理,即
a2 + b2 = c2
其中 a 和 b 是三角形的边,c 是三角形的斜边。
使用它,我们将使用 a 计算 b 和 c 的值。
情况1
If a is even,c = (a2 + 4) + 1
b = (a2 + 4) - 1
案例二
If a is odd,c = (a2 + 1)/ 2
c = (a2 - 1)/ 2
程序来说明我们的解决方案的工作,
示例
#include <bits/stdc++.h>输出结果#include <cmath>
using namespace std;
#define PI 3.1415926535
void printOtherSides(int n) {
int b,c;
if (n & 1) {
if (n == 1)
cout << -1 << endl;
else{
b = (n*n-1)/2;
c = (n*n+1)/2;
}
} else {
if (n == 2)
cout << -1 << endl;
else{
b = n*n/4-1;
c = n*n/4+1;
}
}
cout<<"Sides : a = "<<n<<", b = "<<b<<", c = "<<c<<endl;
}
int main() {
int a = 5;
printOtherSides(a);
return 0;
}
Sides : a = 5, b = 12, c = 13
以上是 在 C++ 中找到直角三角形的另外两条边 的全部内容, 来源链接: utcz.com/z/350494.html