이 문제에서는 직각 삼각형의 빗변과 면적을 나타내는 두 개의 값 H와 A가 주어집니다. 우리의 임무는 직각 삼각형의 치수를 찾는 것입니다. .
직각 삼각형 두 변이 직각으로 교차하는 특수한 유형의 삼각형입니다.

Fig :직각삼각형
문제를 이해하기 위해 예를 들어 보겠습니다.
Input : H = 7 , A = 8 Output : height = 2.43, base = 6.56
해결 방법
이 문제에 대한 해결책은 값에 대한 수학 공식을 사용하여 찾을 수 있습니다. 여기에서 파생시켜 보겠습니다.
$A\:=\:1/2^*h^*b$
$H^2\:=\:h^2\:+\:b^2$
공식을 사용하여
$(h+b)^2\:=\:h^2+b^2+2^*h^*b$
$(h+b)^2\:=\:H^2+4^*A$
$(h+b)\:=\:\sqrt(H^2+4^*A)$
마찬가지로 공식을 사용하여
$(h-b)^2\:=\:h^2+b^2-2^*h^*b$
$(h-b)^2\:=\:H^2-4^*A$
$(h-b)^2\:=\:\sqrt(H^2-4^*A)$
여기에 두 개의 방정식이 있습니다.
둘 다 추가하면
$h-b+h-b\:=\:\sqrt(H^2-4^*A)\:+\:\sqrt(H2-4^*A)$
$2h\:=\:(\sqrt(H^2-4^*A))\:+\:(\sqrt(H^2-4^*A))$
$h\:=\:1/2^*(\sqrt(H^2-4^*A))\:+\:(\sqrt(H^2-4^*A))$
둘 다 빼면,
$h-b-h+b\:=\:\sqrt(H^2-4^*A)-\sqrt(H^2-4^*A)$
$2b\:=\:(\sqrt(H^2-4^*A)\:-\:\sqrt(H^2-4^*A))$
$b\:=\:1/2^*(\sqrt(H^2-4^*A)\:-\:\sqrt(H^2-4^*A))$
두 공식을 적용하여 b와 h의 값을 구합니다.
예
솔루션 작동을 설명하는 프로그램
#include <iostream>
#include <math.h>
using namespace std;
void findAllDismensionsRightTriangle(int H, int A) {
if (H * H < 4 * A) {
cout<<"Not Possible\n";
return;
}
float val1 = (float)sqrt(H * H + 4 * A);
float val2 = (float)sqrt(H * H - 4 * A);
float b = (float)(val1 + val2) / 2.0;
float p = (float)(val1 - val2) / 2.0;
cout<<"Perpendicular = "<<p<<endl;
cout<<"Base = "<<b;
}
int main() {
int H = 7;
int A = 8;
cout<<"The dimensions of the triangle are : \n";
cout<<"Hypotenuse = "<<H<<endl;
findAllDismensionsRightTriangle(H, A);
return 0;
} 출력
The dimensions of the triangle are : Hypotenuse = 7 Perpendicular = 2.43845 Base = 6.56155