Encuentra ángulos interiores para cada lado de un cuadrilátero cíclico dado

Dados cuatro números enteros positivos A , B , C y D que representan los lados de un cuadrilátero cíclico, la tarea es encontrar todos los ángulos interiores del cuadrilátero cíclico .

Un cuadrilátero cíclico es un cuadrilátero cuyos vértices se encuentran en un solo círculo. 
Este círculo se llama circuncírculo o círculo circunscrito, y se dice que los vértices son concíclicos (A, B, C y D). 
(En la figura, r es el circunradio y a, b, c y d son la longitud de AB, BC, CD y DA respectivamente).

Ejemplos:

Entrada: A = 10, B = 15, C = 20, D = 25
Salida:
∠A: 85,59 grados
∠B: 122,58 grados
∠C: 94,41 grados
∠D: 57,42 grados

Entrada: A = 10, B = 10, C = 10, D = 10
Salida:
∠A: 90,00 grados
∠B: 90,00 grados
∠C: 90,00 grados
∠D: 90,00 grados

Enfoque: El problema dado se puede resolver usando la fórmula para calcular el coseno del ángulo interior de un cuadrilátero cíclico . La fórmula está dada por:

cos(A) = \frac{(a^2 + d^2 - b^2 - c^2)}{(2 *( a * b + c * d))}

cos(B) = \frac{(a^2 + b^2 - c^2 - d^2)}{(2 *( a * b + c * d))}

cos(C) = \frac{(c^2 + b^2 - a^2 - d^2)}{(2 *( a * b + c * d))}

cos(D) = \frac{(d^2 + c^2 - a^2 - b^2)}{(2 *( a * b + c * d))}

Siga los pasos a continuación para resolver el problema:

A continuación se muestra la implementación del enfoque anterior:

C++

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

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

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

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

Javascript

<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>
Producción: 

A: 85.59 degrees
B: 122.58 degrees
C: 94.41 degrees
D: 57.42 degrees

 

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por sam_2200 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *