# Find the dimensions of Right angled triangle

Last Updated : 27 Aug, 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)

Previous
Next