# Length of remaining two sides of a Triangle from a given side and its adjacent angles

Given the length of a side a of a triangle and its adjacent angles B and C, the task is to find the remaining two sides of the triangle.

Input: a = 5, B = 62.2, C = 33.5
Output: 4.44, 2.77
Explaination
The remaining two sides of the triangle are b = 4.44488228556699 and c = 2.7733977979419038
Input: a = 12, B = 60, C = 30
Output: 10.39, 5.99
Explaination
The remaining two sides of the triangle are b = 10.392304845413264 and c = 5.999999999999999

Approach:

1. The remaining angle can be calculated by the angle sum theorem in a triangle:
2. The other two sides of triangle can be computed using sine formula:

Below is the implementation of the above approach:

 `// C++ program for above approach ` `#include` `using` `namespace` `std;`   `// Function for computing other ` `// 2 side of the trianlgle ` `void` `findSide(``float` `a, ``float` `B, ``float` `C)` `{` `    `  `    ``// Computing angle C ` `    ``float` `A = 180 - C - B;` `    `  `    ``// Converting A in to radian ` `    ``float` `radA = M_PI * (A / 180);` `    `  `    ``// Converting B in to radian` `    ``float` `radB = M_PI * (B / 180);` `    `  `    ``// Converting C in to radian` `    ``float` `radC = M_PI * (C / 180);` `    `  `    ``// Computing length of side b ` `    ``float` `b = a / ``sin``(radA) * ``sin``(radB);` `    `  `    ``// Computing length of side c` `    ``float` `c = a / ``sin``(radA) * ``sin``(radC);` `    `  `    ``cout << fixed << setprecision(15) << b << ``" "``;` `    ``cout << fixed << setprecision(15) << c;` `}`   `// Driver code ` `int` `main()` `{` `    ``int` `a = 12, B = 60, C = 30;` `    `  `    ``// Calling function ` `    ``findSide(a, B, C); ` `}`   `// This code is contributed by ishayadav181`

 `// Java program for above approach ` `import` `java.util.*;`   `class` `GFG{`   `// Function for computing other ` `// 2 side of the trianlgle ` `static` `void` `findSide(``double` `a, ``double` `B, ` `                     ``double` `C)` `{` `    `  `    ``// Computing angle C ` `    ``double` `A = ``180` `- C - B;` `    `  `    ``// Converting A in to radian ` `    ``double` `radA = (Math.PI * (A / ``180``));` `    `  `    ``// Converting B in to radian` `    ``double` `radB = (Math.PI * (B / ``180``));` `    `  `    ``// Converting C in to radian` `    ``double` `radC = (Math.PI * (C / ``180``));` `    `  `    ``// Computing length of side b ` `    ``double` `b = (a / Math.sin(radA) * ` `                    ``Math.sin(radB));` `    `  `    ``// Computing length of side c` `    ``double` `c = (a / Math.sin(radA) *` `                    ``Math.sin(radC));` `    `  `    ``System.out.printf(``"%.15f"``, b);` `    ``System.out.printf(``" %.15f"``, c);` `}`   `// Driver code ` `public` `static` `void` `main(String[] args)` `{` `    ``int` `a = ``12``, B = ``60``, C = ``30``;` `    `  `    ``// Calling function ` `    ``findSide(a, B, C); ` `}` `}`   `// This code is contributed by Amit Katiyar`

 `# Python3 program for above approach` `import` `math`   `# Function for computing other` `# 2 side of the trianlgle` `def` `findSide(a, B, C):`   `    ``# computing angle C` `    ``A ``=` `180``-``C``-``B`   `    ``# converting A in to radian` `    ``radA ``=` `math.pi ``*``(A ``/` `180``)`   `    ``# converting B in to radian` `    ``radB ``=` `math.pi ``*``(B ``/` `180``)`   `    ``# converting C in to radian` `    ``radC ``=` `math.pi ``*``(C ``/` `180``)`   `    ``# computing length of side b` `    ``b ``=` `a ``/` `math.sin(radA)``*``math.sin(radB)`   `    ``# computing length of side c` `    ``c ``=` `a ``/` `math.sin(radA)``*``math.sin(radC)`   `    ``return` `b, c`   `# driver program` `a ``=` `12` `B ``=` `60` `C ``=` `30`   `# calling function` `b, c ``=` `findSide(a, B, C)` `print``(b, c)`

 `// C# program for above approach ` `using` `System;` `class` `GFG{`   `// Function for computing other ` `// 2 side of the trianlgle ` `static` `void` `findSide(``float` `a, ` `                     ``double` `B, ``double` `C)` `{    ` `  ``// Computing angle C ` `  ``double` `A = 180 - C - B;`   `  ``// Converting A in to radian ` `  ``double` `radA = (Math.PI * (A / 180));`   `  ``// Converting B in to radian` `  ``double` `radB = (Math.PI * (B / 180));`   `  ``// Converting C in to radian` `  ``double` `radC = (Math.PI * (C / 180));`   `  ``// Computing length of side b ` `  ``double` `b = (a / Math.Sin(radA) * ` `              ``Math.Sin(radB));`   `  ``// Computing length of side c` `  ``double` `c = (a / Math.Sin(radA) *` `              ``Math.Sin(radC));`   `  ``Console.Write(``"{0:F15}"``, b);` `  ``Console.Write(``"{0:F15}"``, c);` `}`   `  ``// Driver code ` `  ``public` `static` `void` `Main(String[] args)` `  ``{` `    ``int` `a = 12, B = 60, C = 30;`   `    ``// Calling function ` `    ``findSide(a, B, C); ` `  ``}` `}`   `// This code is contributed by 29AjayKumar`

Output:
```10.392304845413264 5.999999999999999

```

Time Complexity: O(1)
Auxillary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Article Tags :
Practice Tags :