Dados cuatro números enteros positivos A , B , C y D que representan la longitud de los lados de un cuadrilátero cíclico , la tarea es encontrar el área del cuadrilátero cíclico.
Ejemplos:
Entrada: A = 10, B = 15, C = 20, D = 25
Salida: 273.861Entrada: A = 10, B = 30, C = 50, D = 20
Salida: 443.706
Enfoque: El problema dado se puede resolver con base en las siguientes observaciones:
- Un cuadrilátero cíclico es un cuadrilátero cuyos vértices se encuentran todos en un solo círculo. El círculo se llama circuncírculo o círculo circunscrito, y se dice que los vértices son concíclicos.
- En la imagen de arriba, r es el radio del círculo y A , B , C y D son las longitudes de los lados PQ , QR , RS y SP respectivamente.
- El área del cuadrilátero está dada por la fórmula de Bretschneider :
donde A, B, C y D son los lados del triángulo y
α y γ son los ángulos opuestos del cuadrilátero.Ya que la suma de los ángulos opuestos del cuadrilátero es 180 grados. Por lo tanto, el valor de cos(180/2) = cos(90) = 0.
Por lo tanto, la fórmula para encontrar el área se reduce a .
Por lo tanto, la idea es imprimir el valor de como el área resultante del cuadrilátero dado.
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 area // of cyclic quadrilateral float calculateArea(float A, float B, float C, float D) { // Stores the value of // half of the perimeter float S = (A + B + C + D) / 2; // Stores area of cyclic quadrilateral float area = sqrt((S - A) * (S - B) * (S - C) * (S - D)); // Return the resultant area return area; } // Driver Code int main() { float A = 10; float B = 15; float C = 20; float D = 25; cout << calculateArea(A, B, C, D); return 0; }
Java
// Java program for the above approach import java.io.*; class GFG{ // Function to find the area // of cyclic quadrilateral static float calculateArea(float A, float B, float C, float D) { // Stores the value of // half of the perimeter float S = (A + B + C + D) / 2; // Stores area of cyclic quadrilateral float area = (float)Math.sqrt((S - A) * (S - B) * (S - C) * (S - D)); // Return the resultant area return area; } // Driver code public static void main (String[] args) { float A = 10; float B = 15; float C = 20; float D = 25; System.out.println(calculateArea(A, B, C, D)); } } // This code is contributed by Ankita saini
Python3
# Python3 program for the above approach from math import sqrt # Function to find the area # of cyclic quadrilateral def calculateArea(A, B, C, D): # Stores the value of # half of the perimeter S = (A + B + C + D) // 2 # Stores area of cyclic quadrilateral area = sqrt((S - A) * (S - B) * (S - C) * (S - D)) # Return the resultant area return area # Driver Code if __name__ == '__main__': A = 10 B = 15 C = 20 D = 25 print(round(calculateArea(A, B, C, D), 3)) # This code is contributed by mohit kumar 29
C#
// C# program for the above approach using System; class GFG{ // Function to find the area // of cyclic quadrilateral static float calculateArea(float A, float B, float C, float D) { // Stores the value of // half of the perimeter float S = (A + B + C + D) / 2; // Stores area of cyclic quadrilateral float area = (float)Math.Sqrt((S - A) * (S - B) * (S - C) * (S - D)); // Return the resultant area return area; } // Driver Code static public void Main() { float A = 10; float B = 15; float C = 20; float D = 25; Console.Write(calculateArea(A, B, C, D)); } } // This code is contributed by code_hunt
Javascript
<script> // java script program for the above approach // Function to find the area //of cyclic quadrilateral function calculateArea(A, B, C, D){ //Stores the value of // half of the perimeter let S = (A + B + C + D) /2 // Stores area of cyclic quadrilateral let area = Math.sqrt((S - A) * (S - B) * (S - C) * (S - D)) //Return the resultant area return area; } // Driver Code let A = 10; let B = 15; let C = 20; let D = 25; document.write(calculateArea(A, B, C, D).toFixed(3)) //this code is contributed by sravan kumar </script>
273.861
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)