在 C++ 中找到直角三角形的另外两条边
在这个问题中,我们给定一个整数a表示直角三角形的一侧。我们需要检查是否有可能有一个边为a的直角三角形。如果可能,请找出直角三角形的另外两条边。
让我们举个例子来理解这个问题,
输入
a = 5输出结果
Sides : 5, 12, 13
解释
直角的边被发现为52+122=132
解决方法
该问题的一个简单解决方案是使用勾股定理。我们知道直角三角形的边遵循勾股定理,即
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#include 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 = "< 上一篇
在 C++ 中查找最大数为 1 的二进制矩阵的行号热门推荐