Dado un hexágono regular de lado a , la tarea es encontrar el área del cuadrado más grande que se puede inscribir en él.
Ejemplos:
Entrada: a = 6
Salida: 57,8817
Entrada: a = 8
Salida: 102,901
Planteamiento: El cuadrado que derivaremos tendrá el mismo centro y ejes del hexágono. Esto se debe a que el cuadrado se hará más pequeño si lo rotamos.
Los lados del hexágono son iguales, es decir , a = b + c .
Ahora, sea d la longitud del lado del cuadrado inscrito,
luego el lado superior del cuadrado, d = 2 * c * sin(60) .
Y, el lado izquierdo del cuadrado, d = a + 2 * b * sin(30) .
Sustituyendo por c, d = 2 * (a – b) * sin(60) .
Ahora tomando d y reorganizando, obtenemos, b / a = (2 * sin(60) – 1) / (2 * (sin(30) + sin(60)))
Entonces, b / a = 2 – √ 3
Ahora, sustituyendo la relación de b y a en la ecuación del lado izquierdo del cuadrado, obtenemos,
d / a = 3 – √3 es decird/a = 1.268
Por lo tanto, d = 1.268 * a
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find the area of the largest square // that can be inscribed within the hexagon #include <bits/stdc++.h> using namespace std; // Function to find the area // of the square float squareArea(float a) { // Side cannot be negative if (a < 0) return -1; // Area of the square float area = pow(1.268, 2) * pow(a, 2); return area; } // Driver code int main() { float a = 6; cout << squareArea(a) << endl; return 0; }
Java
// Java program to find the area of the largest square // that can be inscribed within the hexagon class Solution { // Function to find the area // of the square static float squareArea(float a) { // Side cannot be negative if (a < 0) return -1; // Area of the square float area = (float)(Math.pow(1.268, 2) * Math.pow(a, 2)); return area; } // Driver code public static void main(String args[]) { float a = 6; System.out.println(squareArea(a)); } } // This code is contributed by Arnab Kundu
Python3
# Python program to find the area of the largest square # that can be inscribed within the hexagon # Function to find the area # of the square def squareArea(a): # Side cannot be negative if (a < 0): return -1; # Area of the square area = (1.268 ** 2) * (a ** 2); return area; # Driver code a = 6; print(squareArea(a)); # This code contributed by PrinciRaj1992
C#
// C# program to find the area of the largest square // that can be inscribed within the hexagon using System; class Solution { // Function to find the area // of the square static float squareArea(float a) { // Side cannot be negative if (a < 0) return -1; // Area of the square float area = (float)(Math.Pow(1.268, 2) * Math.Pow(a, 2)); return area; } // Driver code public static void Main() { float a = 6; Console.WriteLine(squareArea(a)); } } // This code is contributed by anuj_67..
PHP
<?php // PHP program to find the area of the largest square // that can be inscribed within the hexagon // Function to find the area // of the square function squareArea($a) { // Side cannot be negative if ($a < 0) return -1; // Area of the square $area = pow(1.268, 2) * pow($a, 2); return $area; } // Driver code $a = 6; echo squareArea($a), "\n"; // This code is contributed by Tushil ?>
Javascript
<script> // javascript program to find the area of the largest square // that can be inscribed within the hexagon // Function to find the area // of the square function squareArea(a) { // Side cannot be negative if (a < 0) return -1; // Area of the square var area = (Math.pow(1.268, 2) * Math.pow(a, 2)); return area; } // Driver code var a = 6; document.write(squareArea(a).toFixed(5)); // This code is contributed by Princi Singh </script>
57.8817
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA