Given integers A, B, C, and D, denoting the length of sides of a Cyclic Quadrilateral, the task is to find the length of diagonals of a cyclic quadrilateral.
Examples:
Input: A = 10, B = 15, C = 20, D = 25
Output: 22.06 26.07Input: A = 10, B = 30, C =50, D = 20
Output: 37.93 29.0
Approach: The length of diagonals can be calculated using the following equations:
[Tex]Diagonal (q)=\sqrt{\frac{(ac+bd)(ab+cd)}{ad+bc}} [/Tex]
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 cyclic quadrilateralvector<float> Diagonals(int a, int b, int c, int d){ vector<float> ans; ans.push_back(sqrt(((a * c) + (b * d)) * ((a * d) + (b * c)) / ((a * b) + (c * d)))); ans.push_back(sqrt(((a * c) + (b * d)) * ((a * b) + (c * d)) / ((a * d) + (b * c)))); return ans;}// Driver Codeint main(){ int A = 10; int B = 15; int C = 20; int D = 25; // Function Call vector<float> ans = Diagonals(A, B, C, D); // Print the final answer printf("%.2f %.2f", (ans[0]) + .01, ans[1] + .01);}// This code is contributed by Amit Katiyar |
Java
// Java Program to implement// the above approachimport java.util.*;class GFG{// Function to calculate the length of// diagonals of a cyclic quadrilateralstatic Vector<Float> Diagonals(int a, int b, int c, int d){ Vector<Float> ans = new Vector<Float>(); ans.add((float) Math.sqrt(((a * c) + (b * d)) * ((a * d) + (b * c)) / ((a * b) + (c * d)))); ans.add((float) Math.sqrt(((a * c) + (b * d)) * ((a * b) + (c * d)) / ((a * d) + (b * c)))); return ans;}// Driver Codepublic static void main(String[] args){ int A = 10; int B = 15; int C = 20; int D = 25; // Function Call Vector<Float> ans = Diagonals(A, B, C, D); // Print the final answer System.out.printf("%.2f %.2f", (ans.get(0)) + .01, ans.get(1) + .01);}}// This code is contributed by 29AjayKumar |
Python3
# Python3 program to implement# the above approachimport math# Function to calculate the length of# diagonals of a cyclic quadrilateraldef Diagonals(a, b, c, d): p = math.sqrt(((a * c)+(b * d))*((a * d)+(b * c)) / ((a * b)+(c * d))) q = math.sqrt(((a * c)+(b * d))*((a * b)+(c * d)) / ((a * d)+(b * c))) return [p, q]# Driver CodeA = 10B = 15C = 20D = 25# Function Callans = Diagonals(A, B, C, D)# Print the final answerprint(round(ans[0], 2), round(ans[1], 2)) |
C#
// C# Program to implement// the above approachusing System;using System.Collections.Generic;class GFG{// Function to calculate the length of// diagonals of a cyclic quadrilateralstatic List<float> Diagonals(int a, int b, int c, int d){ List<float> ans = new List<float>(); ans.Add((float) Math.Sqrt(((a * c) + (b * d)) * ((a * d) + (b * c)) / ((a * b) + (c * d)))); ans.Add((float) Math.Sqrt(((a * c) + (b * d)) * ((a * b) + (c * d)) / ((a * d) + (b * c)))); return ans;}// Driver Codepublic static void Main(String[] args){ int A = 10; int B = 15; int C = 20; int D = 25; // Function Call List<float> ans = Diagonals(A, B, C, D); // Print the readonly answer Console.Write("{0:F2} {1:F2}", (ans[0]) + .01, ans[1] + .01);}} // This code is contributed by 29AjayKumar |
Javascript
<script>// Javascript Program to implement// the above approach// Function to calculate the length of// diagonals of a cyclic quadrilateralfunction Diagonals(a, b, c, d){ var p = parseFloat( Math.sqrt(((a * c) + (b * d)) * ((a * d) + (b * c)) / ((a * b) + (c * d)))); var q = parseFloat( Math.sqrt(((a * c) + (b * d)) * ((a * b) + (c * d)) / ((a * d) + (b * c)))); return [p, q];}// Driver Codevar A = 10;var B = 15;var C = 20;var D = 25;// Function Callvar ans = Diagonals(A, B, C, D)// Print the final answerdocument.write(ans[0].toFixed(2) + " ", ans[1].toFixed(2));// This code is contributed by kirti</script> |
22.06 26.07
Time Complexity: O(log n)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!


… [Trackback]
[…] Read More Information here on that Topic: geeksforgeeks.org/length-of-diagonals-of-a-cyclic-quadrilateral-using-the-length-of-sides/ […]