在 C++ 中找到直角三角形的其他两条边和角度
在这个问题中,我们给定一个整数a表示直角三角形的一侧。我们需要检查是否有可能有一个边为a的直角三角形。如果可能,请找出直角三角形的另外两条边和角。
让我们举个例子来理解这个问题,
输入
a = 5输出结果
Sides : 5, 12, 13 Angles : 67.38, 22.62, 90
解释
直角的边被发现为52+122=132并且使用这些边我们可以找到角是,Sin-1(5/13)和90-Sin-1(5/13)。
解决方法
该问题的一个简单解决方案是使用勾股定理。我们知道直角三角形的边遵循勾股定理,即
a2 + b2 = c2
其中a和b是三角形的边,c是三角形的斜边。
使用它,我们将使用a计算b和c的值。
情况1-如果a是偶数,
c = (a2 + 4) + 1 b = (a2 + 4) - 1
情况2-如果a是奇数,
c = (a2 + 1)/ 2 c = (a2 - 1)/ 2
要找到角度,我们需要找到三角形的边并使用这些值找到cos值。
cos(A) = b2 + c2 - a2 / 2bc cos(B) = a2 + c2 - b2 / 2ac cos(C) = a2 + b2 - c2 / 2ab
程序来说明我们的解决方案的工作,
示例
#include#include using namespace std; #define PI 3.1415926535 void printAngles(int a, int b, int c) { double x = (double)a; double y = (double)b; double z = (double)c; double A = (((double)(acos(( (y*y) + (z*z) - (x*x) ) / (2*y*z))))* 180 / PI); double B = ((double)(acos(( (x*x) + (z*z) - (y*y) ) / (2*x*z)))* 180 / PI); cout<<"Angles: A = "<上一篇
C++程序在给定范围内查找具有K个奇数除数的数字热门推荐