Related Articles

Related Articles

Largest hexagon that can be inscribed within a square
  • Difficulty Level : Hard
  • Last Updated : 04 Jan, 2019

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.    
}

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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. 

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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
?>

chevron_right


Output:

3.1056

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :