Given two integers **A** and **theta**, denoting the length of a side of a rhombus and the vertex angle respectively, the task is to find the length of the diagonals of the rhombus.

**Examples:**

Input:A = 10, theta = 30Output:19.32 5.18

Input:A = 6, theta = 45Output:11.09 4.59

**Approach:**

The problem can be solved using the law of cosines. Using the **law of cosines** on triangles formed by the diagonals and sides of the rhombus gives the following relation to calculate the length of diagonals:

Below is the implementation of the above approach:

## C++

`// C++ program to implement ` `// the above approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to calculate the length ` `// of diagonals of a rhombus using ` `// length of sides and vertex angle ` `double` `Length_Diagonals(` `int` `a, ` `double` `theta) ` `{ ` ` ` `double` `p = a * ` `sqrt` `(2 + (2 * ` `cos` `( ` ` ` `theta * (3.141 / 180)))); ` ` ` `double` `q = a * ` `sqrt` `(2 - (2 * ` `cos` `( ` ` ` `theta * (3.141 / 180)))); ` ` ` ` ` `cout << fixed << setprecision(2) << p ` ` ` `<< ` `" "` `<< q; ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `int` `a = 6; ` ` ` `int` `theta = 45; ` ` ` ` ` `// Function Call ` ` ` `Length_Diagonals(a, theta); ` ` ` ` ` `return` `0; ` `} ` ` ` `// This code is contributed by Virusbuddah_` |

*chevron_right*

*filter_none*

## Java

`// Java program to implement ` `// the above approach ` `class` `GFG{ ` ` ` `// Function to calculate the length ` `// of diagonals of a rhombus using ` `// length of sides and vertex angle ` `static` `double` `[] Length_Diagonals(` `int` `a, ` `double` `theta) ` `{ ` ` ` `double` `p = a * Math.sqrt(` `2` `+ (` `2` `* ` ` ` `Math.cos(theta * (Math.PI / ` `180` `)))); ` ` ` ` ` `double` `q = a * Math.sqrt(` `2` `- (` `2` `* ` ` ` `Math.cos(theta * (Math.PI / ` `180` `)))); ` ` ` ` ` `return` `new` `double` `[]{ p, q }; ` `} ` ` ` `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `int` `A = ` `6` `; ` ` ` `double` `theta = ` `45` `; ` ` ` ` ` `double` `[] ans = Length_Diagonals(A, theta); ` ` ` ` ` `System.out.printf(` `"%.2f"` `+ ` `" "` `+ ` `"%.2f"` `, ` ` ` `ans[` `0` `], ans[` `1` `]); ` `} ` `} ` ` ` `// This code is contributed by Princi Singh` |

*chevron_right*

*filter_none*

## Python3

`# Python Program to implement ` `# the above approach ` `import` `math ` ` ` `# Function to calculate the length ` `# of diagonals of a rhombus using ` `# length of sides and vertex angle ` `def` `Length_Diagonals(a, theta): ` ` ` ` ` `p ` `=` `a ` `*` `math.sqrt(` `2` `+` `(` `2` `*` `\ ` ` ` `math.cos(math.radians(theta)))) ` ` ` ` ` `q ` `=` `a ` `*` `math.sqrt(` `2` `-` `(` `2` `*` `\ ` ` ` `math.cos(math.radians(theta)))) ` ` ` ` ` `return` `[p, q] ` ` ` ` ` `# Driver Code ` `A ` `=` `6` `theta ` `=` `45` ` ` `ans ` `=` `Length_Diagonals(A, theta) ` ` ` `print` `(` `round` `(ans[` `0` `], ` `2` `), ` `round` `(ans[` `1` `], ` `2` `)) ` |

*chevron_right*

*filter_none*

## C#

`// C# program to implement ` `// the above approach ` `using` `System; ` `class` `GFG{ ` ` ` `// Function to calculate the length ` `// of diagonals of a rhombus using ` `// length of sides and vertex angle ` `static` `double` `[] Length_Diagonals(` `int` `a, ` `double` `theta) ` `{ ` ` ` `double` `p = a * Math.Sqrt(2 + (2 * ` ` ` `Math.Cos(theta * (Math.PI / 180)))); ` ` ` ` ` `double` `q = a * Math.Sqrt(2 - (2 * ` ` ` `Math.Cos(theta * (Math.PI / 180)))); ` ` ` ` ` `return` `new` `double` `[]{ p, q }; ` `} ` ` ` `// Driver Code ` `public` `static` `void` `Main(String[] args) ` `{ ` ` ` `int` `A = 6; ` ` ` `double` `theta = 45; ` ` ` ` ` `double` `[] ans = Length_Diagonals(A, theta); ` ` ` ` ` `Console.Write(` `"{0:F2}"` `+ ` `" "` `+ ` `"{1:F2}"` `, ` ` ` `ans[0], ans[1]); ` `} ` `} ` ` ` `// This code is contributed by gauravrajput1` |

*chevron_right*

*filter_none*

**Output:**

11.09 4.59

**Time Complexity:** O(1) **Auxiliary 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.