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++ 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 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 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# 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 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 ?> |
<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)