Open In App

Largest hexagon that can be inscribed within a square

Last Updated : 25 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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>


Output: 

3.1056

 

Time Complexity: O(1)

Auxiliary Space: O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads