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.5Output:4.44, 2.77Explaination

The remaining two sides of the triangle are b = 4.44488228556699 and c = 2.7733977979419038Input:a = 12, B = 60, C = 30Output:10.39, 5.99Explaination

The remaining two sides of the triangle are b = 10.392304845413264 and c = 5.999999999999999

**Approach:**

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

Below is the implementation of the above approach:

## C++

`// C++ program for above approach ` `#include<bits/stdc++.h>` `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` |

*chevron_right*

*filter_none*

## Java

`// 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` |

*chevron_right*

*filter_none*

## Python3

`# 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)` |

*chevron_right*

*filter_none*

## 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` |

*chevron_right*

*filter_none*

**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.