Given four positive integers A, B, C, and D representing the sides of a Cyclic Quadrilateral, the task is to find all the interior angles of the cyclic quadrilateral.
A cyclic quadrilateral is a quadrilateral whose vertices lie on a single circle.
This circle is called the circumcircle or circumscribed circle, and the vertices are said to be concyclic(A, B, C, and D).
( In the figure, r is the circumradius and a, b, c, and d are length of AB, BC, CD, and DA respectively).
Examples:
Input: A = 10, B = 15, C = 20, D = 25
Output:
?A: 85.59 degrees
?B: 122.58 degrees
?C: 94.41 degrees
?D: 57.42 degreesInput: A = 10, B = 10, C = 10, D = 10
Output:
?A: 90.00 degrees
?B: 90.00 degrees
?C: 90.00 degrees
?D: 90.00 degrees
Approach: The given problem can be solved by using the formula to calculate the cosine of the interior angle of a cyclic quadrilateral. The formula is given by:
Follow the steps below to solve the problem:
- Store the cosine of each interior angle of the cyclic quadrilateral.
- Find the angle in radians using acos() function.
- Convert the angle in radians to degrees and print the result.
Below is the implementation of the above approach:
// C++ program for the above approach #include <bits/stdc++.h> using namespace std;
// Function to find the interior angles // of the cyclic quadrilateral void findAngles( double a, double b,
double c, double d)
{ // Stores the numerator and the
// denominator to find angle A
double numerator = a * a + d * d
- b * b - c * c;
double denominator = 2 * (a * b + c * d);
double x = numerator / denominator;
cout << fixed << setprecision(2)
<< "A: " << ( acos (x) * 180) / 3.141592
<< " degrees" ;
// Stores the numerator and the
// denominator to find angle B
numerator = a * a + b * b
- c * c - d * d;
x = numerator / denominator;
cout << fixed << setprecision(2)
<< "\nB: " << ( acos (x) * 180) / 3.141592
<< " degrees" ;
// Stores the numerator and the
// denominator to find angle C:
numerator = c * c + b * b
- a * a - d * d;
x = numerator / denominator;
cout << fixed << setprecision(2)
<< "\nC: " << ( acos (x) * 180) / 3.141592
<< " degrees" ;
// Stores the numerator and the
// denominator to find angle D:
numerator = d * d + c * c
- a * a - b * b;
x = numerator / denominator;
cout << fixed << setprecision(2)
<< "\nD: " << ( acos (x) * 180) / 3.141592
<< " degrees" ;
} // Driver Code int main()
{ double A = 10, B = 15, C = 20, D = 25;
findAngles(A, B, C, D);
return 0;
} |
// Java program for the above approach class GFG{
// Function to find the interior angles // of the cyclic quadrilateral static void findAngles( double a, double b,
double c, double d)
{ // Stores the numerator and the
// denominator to find angle A
double numerator = a * a + d * d -
b * b - c * c;
double denominator = 2 * (a * b + c * d);
double x = numerator / denominator;
System.out.println( "A: " +
Math.round(((Math.acos(x) * 180 ) /
3.141592 ) * 100.0 ) /
100.0 + " degrees" );
// Stores the numerator and the
// denominator to find angle B
numerator = a * a + b * b - c * c - d * d;
x = numerator / denominator;
System.out.println( "B: " +
Math.round(((Math.acos(x) * 180 ) /
3.141592 ) * 100.0 ) /
100.0 + " degrees" );
// Stores the numerator and the
// denominator to find angle C:
numerator = c * c + b * b -
a * a - d * d;
x = numerator / denominator;
System.out.println( "C: " +
Math.round(((Math.acos(x) * 180 ) /
3.141592 ) * 100.0 ) /
100.0 + " degrees" );
// Stores the numerator and the
// denominator to find angle D:
numerator = d * d + c * c -
a * a - b * b;
x = numerator / denominator;
System.out.println( "D: " +
Math.round(((Math.acos(x) * 180 ) /
3.141592 ) * 100.0 ) /
100.0 + " degrees" );
} // Driver Code public static void main (String[] args)
{ double A = 10 , B = 15 , C = 20 , D = 25 ;
findAngles(A, B, C, D);
} } // This code is contributed by AnkThon |
# Python3 program for the above approach import math
# Function to find the interior angles # of the cyclic quadrilateral def findAngles(a, b, c, d):
# Stores the numerator and the
# denominator to find angle A
numerator = a * a + d * d - b * b - c * c
denominator = 2 * (a * b + c * d)
x = numerator / denominator
print ( "A: " , '%.2f' % ((math.acos(x) * 180 ) /
3.141592 ), " degrees" )
# Stores the numerator and the
# denominator to find angle B
numerator = a * a + b * b - c * c - d * d
x = numerator / denominator
print ( "B: " , '%.2f' % ((math.acos(x) * 180 ) /
3.141592 ), " degrees" )
# Stores the numerator and the
# denominator to find angle C:
numerator = c * c + b * b - a * a - d * d
x = numerator / denominator
print ( "C: " , '%.2f' % ((math.acos(x) * 180 ) /
3.141592 ), " degrees" )
# Stores the numerator and the
# denominator to find angle D:
numerator = d * d + c * c - a * a - b * b
x = numerator / denominator
print ( "D: " , '%.2f' % ((math.acos(x) * 180 ) /
3.141592 ), " degrees" )
# Driver Code if __name__ = = "__main__" :
A = 10
B = 15
C = 20
D = 25
findAngles(A, B, C, D)
# This code is contributed by ukasp |
// C# program for the above approach using System;
class GFG{
// Function to find the interior angles // of the cyclic quadrilateral static void findAngles( double a, double b,
double c, double d)
{ // Stores the numerator and the
// denominator to find angle A
double numerator = a * a + d * d -
b * b - c * c;
double denominator = 2 * (a * b + c * d);
double x = numerator / denominator;
Console.WriteLine( "A: " +
Math.Round(((Math.Acos(x) * 180) /
3.141592) * 100.0) /
100.0 + " degrees" );
// Stores the numerator and the
// denominator to find angle B
numerator = a * a + b * b - c * c - d * d;
x = numerator / denominator;
Console.WriteLine( "B: " +
Math.Round(((Math.Acos(x) * 180) /
3.141592) * 100.0) /
100.0 + " degrees" );
// Stores the numerator and the
// denominator to find angle C:
numerator = c * c + b * b -
a * a - d * d;
x = numerator / denominator;
Console.WriteLine( "C: " +
Math.Round(((Math.Acos(x) * 180) /
3.141592) * 100.0) /
100.0 + " degrees" );
// Stores the numerator and the
// denominator to find angle D:
numerator = d * d + c * c -
a * a - b * b;
x = numerator / denominator;
Console.WriteLine( "D: " +
Math.Round(((Math.Acos(x) * 180) /
3.141592) * 100.0) /
100.0 + " degrees" );
} // Driver Code public static void Main( string [] args)
{ double A = 10, B = 15, C = 20, D = 25;
findAngles(A, B, C, D);
} } // This code is contributed by AnkThon |
<script> // JavaScript program for the above approach // Function to find the interior angles // of the cyclic quadrilateral function findAngles(a, b, c, d){
// Stores the numerator and the
// denominator to find angle A
var numerator = a * a + d * d - b * b - c * c
var denominator = 2 * (a * b + c * d)
var x = numerator / denominator
document.write( "A: " , Math.round(((Math.acos(x) * 180) /
3.141592) * 100) / 100.0, " degrees" );
document.write( "<br>" );
// Stores the numerator and the
// denominator to find angle B
numerator = a * a + b * b - c * c - d * d
x = numerator / denominator
document.write( "B: " , Math.round(((Math.acos(x) * 180) /
3.141592) * 100) / 100.0, " degrees" );
document.write( "<br>" );
// Stores the numerator and the
// denominator to find angle C:
numerator = c * c + b * b - a * a - d * d
x = numerator / denominator
document.write( "C: " , Math.round(((Math.acos(x) * 180) /
3.141592) * 100) / 100.0, " degrees" );
document.write( "<br>" );
// Stores the numerator and the
// denominator to find angle D:
numerator = d * d + c * c - a * a - b * b
x = numerator / denominator
document.write( "D: " , Math.round(((Math.acos(x) * 180) /
3.141592) * 100) / 100.0, " degrees" );
} // Driver Code var A = 10
var B = 15
var C = 20
var D = 25
findAngles(A, B, C, D) // This code is contributed by AnkThon </script> |
Output:
A: 85.59 degrees B: 122.58 degrees C: 94.41 degrees D: 57.42 degrees
Time Complexity: O(1)
Auxiliary Space: O(1)