Given side of a square a, the task is to find the side of the largest hexagon that can be inscribed within the given square.
Examples:
Input: a = 6
Output: 3.1056
Input: a = 8
Output: 4.1408
Approach:: Let, the side of the hexagon be x and assume that the side of the square, a gets divided into smaller length b & bigger length c i.e. a = b + c
Now from the figure, we see,
b2 + b2 = x2 which gives b = x / ?2
Now again, d / (2 * x) = cos(30) = ?3 / 2 i.e. d = x?3
And, c2 + c2 = d2 which gives c = d / ?2 = x?3 / ?2
Since, a = b + c. So, a = x / ?2 + x?3 / ?2 = ((1 + ?3) / ?2) * x = 1.932 * x
So, side of the hexagon, x = 0.5176 * a
Below is the implementation of the above approach:
C++
// C++ Program to find the biggest hexagon which // can be inscribed within the given square #include <bits/stdc++.h> using namespace std; // Function to return the side // of the hexagon float hexagonside( float a) { // Side cannot be negative if (a < 0) return -1; // Side of the hexagon float x = 0.5176 * a; return x; } // Driver code int main() { float a = 6; cout << hexagonside(a) << endl; return 0; } |
Java
// Java Program to find the biggest hexagon which // can be inscribed within the given square import java.io.*; class GFG { // Function to return the side // of the hexagon static double hexagonside( double a) { // Side cannot be negative if (a < 0 ) return - 1 ; // Side of the hexagon double x = ( 0.5176 * a); return x; } // Driver code public static void main (String[] args) { double a = 6 ; System.out.println (hexagonside(a)); } //This code is contributed by ajit. } |
Python 3
# Python 3 Program to find the biggest # hexagon which can be inscribed within # the given square # Function to return the side # of the hexagon def hexagonside(a): # Side cannot be negative if (a < 0 ): return - 1 ; # Side of the hexagon x = 0.5176 * a; return x; # Driver code a = 6 ; print (hexagonside(a)); # This code is contributed # by Akanksha Rai |
C#
// C# Program to find the biggest hexagon which // can be inscribed within the given square using System; class GFG { // Function to return the side // of the hexagon static double hexagonside( double a) { // Side cannot be negative if (a < 0) return -1; // Side of the hexagon double x = (0.5176 * a); return x; } // Driver code public static void Main () { double a = 6; Console.WriteLine(hexagonside(a)); } } // This code is contributed by Ryuga. |
PHP
<?php // PHP Program to find the biggest hexagon which // can be inscribed within the given square // Function to return the side of the hexagon function hexagonside( $a ) { // Side cannot be negative if ( $a < 0) return -1; // Side of the hexagon $x = 0.5176 * $a ; return $x ; } // Driver code $a = 6; echo hexagonside( $a ); // This code is contributed by akt_mit ?> |
Javascript
<script> // Javascript Program to find the biggest hexagon which // can be inscribed within the given square // Function to return the side // of the hexagon function hexagonside(a) { // Side cannot be negative if (a < 0) return -1; // Side of the hexagon let x = 0.5176 * a; return x; } // Driver code let a = 6; document.write(hexagonside(a) + "<br>" ); // This code is contributed by Manoj </script> |
3.1056
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!