# Find the dimensions of Right angled triangle

• Difficulty Level : Easy
• Last Updated : 28 Jul, 2022

Given H (Hypotenuse) and A (area) of a right angled triangle, find the dimensions of right angled triangle such that the hypotenuse is of length H and its area is A. If no such triangle exists, print “Not Possible”.

Examples:

```Input : H = 10, A = 24
Output : P = 6.00, B = 8.00

Input : H = 13, A = 36
Output : Not Possible```

Approach:
Before moving to exact solution, let’s do some of mathematical calculations related to properties of Right-angled triangle.
Suppose H = Hypotenuse, P = Perpendicular, B = Base and A = Area of right angled triangle.

We have some sort of equations as :

```P^2 + B^2 = H^2
P * B = 2 * A
(P+B)^2 = P^2 + B^2 + 2*P*B = H^2 + 4*A
(P+B) = sqrt(H^2 + 4*A)  ----1
(P-B)^2 = P^2 + B^2 - 2*P*B = H^2 - 4*A
mod(P-B) = sqrt(H^2 - 4*A)  ----2
from equation (2) we can conclude that if
H^2 < 4*A then no solution is possible.

Further from (1)+(2) and (1)-(2) we have :
P = (sqrt(H^2 + 4*A) + sqrt(H^2 - 4*A) ) / 2
B = (sqrt(H^2 + 4*A) - sqrt(H^2 - 4*A) ) / 2```

Below is the implementation of above approach:

## C++

 `// CPP program to find dimensions of``// Right angled triangle``#include ``using` `namespace` `std;` `// function to calculate dimension``void` `findDimen(``int` `H, ``int` `A)``{``    ``// P^2+B^2 = H^2``    ``// P*B = 2*A``    ``// (P+B)^2 = P^2+B^2+2*P*B = H^2+4*A``    ``// (P-B)^2 = P^2+B^2-2*P*B = H^2-4*A``    ``// P+B = sqrt(H^2+4*A)``    ``// |P-B| = sqrt(H^2-4*A)` `    ``if` `(H * H < 4 * A) {``        ``cout << ``"Not Possible\n"``;``        ``return``;``    ``}` `    ``// sqrt value of H^2 + 4A and H^2- 4A``    ``double` `apb = ``sqrt``(H * H + 4 * A);``    ``double` `asb = ``sqrt``(H * H - 4 * A);` `    ``// Set precision``    ``cout.precision(2);` `    ``cout << ``"P = "` `<< fixed``         ``<< (apb - asb) / 2.0 << ``"\n"``;``    ``cout << ``"B = "` `<< (apb + asb) / 2.0;``}` `// driver function``int` `main()``{``    ``int` `H = 5;``    ``int` `A = 6;``    ``findDimen(H, A);``    ``return` `0;``}`

## Java

 `// Java program to find dimensions of``// Right angled triangle``class` `GFG {` `    ``// function to calculate dimension``    ``static` `void` `findDimen(``int` `H, ``int` `A)``    ``{` `        ``// P^2+B^2 = H^2``        ``// P*B = 2*A``        ``// (P+B)^2 = P^2+B^2+2*P*B = H^2+4*A``        ``// (P-B)^2 = P^2+B^2-2*P*B = H^2-4*A``        ``// P+B = sqrt(H^2+4*A)``        ``// |P-B| = sqrt(H^2-4*A)``        ``if` `(H * H < ``4` `* A) {``            ``System.out.println(``"Not Possible"``);``            ``return``;``        ``}` `        ``// sqrt value of H^2 + 4A and H^2- 4A``        ``double` `apb = Math.sqrt(H * H + ``4` `* A);``        ``double` `asb = Math.sqrt(H * H - ``4` `* A);` `        ``System.out.println(``"P = "` `+ Math.round(((apb - asb) / ``2.0``) * ``100.0``) / ``100.0``);``        ``System.out.print(``"B = "` `+ Math.round(((apb + asb) / ``2.0``) * ``100.0``) / ``100.0``);``    ``}` `    ``// Driver function``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `H = ``5``;``        ``int` `A = ``6``;` `        ``findDimen(H, A);``    ``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# Python code to find dimensions``# of Right angled triangle` `# importing the math package``# to use sqrt function``from` `math ``import` `sqrt` `# function to find the dimensions``def` `findDimen( H, A):` `    ``# P ^ 2 + B ^ 2 = H ^ 2``    ``# P * B = 2 * A``    ``# (P + B)^2 = P ^ 2 + B ^ 2 + 2 * P*B = H ^ 2 + 4 * A``    ``# (P-B)^2 = P ^ 2 + B ^ 2-2 * P*B = H ^ 2-4 * A``    ``# P + B = sqrt(H ^ 2 + 4 * A)``    ``# |P-B| = sqrt(H ^ 2-4 * A)``    ``if` `H ``*` `H < ``4` `*` `A:``        ``print``(``"Not Possible"``)``        ``return` `    ``# sqrt value of H ^ 2 + 4A and H ^ 2- 4A``    ``apb ``=` `sqrt(H ``*` `H ``+` `4` `*` `A)``    ``asb ``=` `sqrt(H ``*` `H ``-` `4` `*` `A)``    ` `    ``# printing the dimensions``    ``print``(``"P = "``, ``"%.2f"` `%``((apb ``-` `asb) ``/` `2.0``))``    ``print``(``"B = "``, ``"%.2f"` `%``((apb ``+` `asb) ``/` `2.0``))``    ` `    ` `# driver code``H ``=` `5` `# assigning value to H``A ``=` `6` `# assigning value to A``findDimen(H, A) ``# calling function` `# This code is contributed by "Abhishek Sharma 44"`

## C#

 `// C# program to find dimensions of``// Right angled triangle``using` `System;` `class` `GFG {` `    ``// function to calculate dimension``    ``static` `void` `findDimen(``int` `H, ``int` `A)``    ``{` `        ``// P^2+B^2 = H^2``        ``// P*B = 2*A``        ``// (P+B)^2 = P^2+B^2+2*P*B = H^2+4*A``        ``// (P-B)^2 = P^2+B^2-2*P*B = H^2-4*A``        ``// P+B = sqrt(H^2+4*A)``        ``// |P-B| = sqrt(H^2-4*A)``        ``if` `(H * H < 4 * A) {``            ``Console.WriteLine(``"Not Possible"``);``            ``return``;``        ``}` `        ``// sqrt value of H^2 + 4A and H^2- 4A``        ``double` `apb = Math.Sqrt(H * H + 4 * A);``        ``double` `asb = Math.Sqrt(H * H - 4 * A);` `        ``Console.WriteLine(``"P = "` `+ Math.Round(``          ``((apb - asb) / 2.0) * 100.0) / 100.0);``          ` `        ``Console.WriteLine(``"B = "` `+ Math.Round(``          ``((apb + asb) / 2.0) * 100.0) / 100.0);``    ``}` `    ``// Driver function``    ``public` `static` `void` `Main()``    ``{``        ``int` `H = 5;``        ``int` `A = 6;` `        ``findDimen(H, A);``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

```P = 3.00
B = 4.00```

Time complexity : O(log(n)) since using inbuilt sqrt functions
Auxiliary Space : O(1)

My Personal Notes arrow_drop_up