Area of the Largest Triangle inscribed in a Hexagon
Given here is a regular hexagon, of side length a, the task is to find the area of the biggest triangle that can be inscribed within it.
Examples:
Input: a = 6
Output: area = 46.7654
Input: a = 8
Output: area = 83.1384
Approach:
It is very clear that the biggest triangle that can be inscribed within the hexagon is an equilateral triangle.
In triangle ACD,
following Pythagoras theorem,
(a/2)^2 + (b/2)^2 = a^2
b^2/4 = 3a^2/4
So, b = a?3
Therefore, area of the triangle, A = ?3(a?3)^2/4= 3?3a^2/4
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
float trianglearea( float a)
{
if (a < 0)
return -1;
float area = (3 * sqrt (3) * pow (a, 2)) / 4;
return area;
}
int main()
{
float a = 6;
cout << trianglearea(a) << endl;
return 0;
}
|
Java
import java.io.*;
class GFG {
static double trianglearea( double a)
{
if (a < 0 )
return - 1 ;
double area = ( 3 * Math.sqrt( 3 ) * Math.pow(a, 2 )) / 4 ;
return area;
}
public static void main (String[] args) {
double a = 6 ;
System.out.println (trianglearea(a));
}
}
|
Python3
import math
def trianglearea(a):
if (a < 0 ):
return - 1 ;
area = ( 3 * math.sqrt( 3 ) * math. pow (a, 2 )) / 4 ;
return area;
a = 6 ;
print (trianglearea(a))
|
C#
using System;
class GFG {
static double trianglearea( double a)
{
if (a < 0)
return -1;
double area = (3 * Math.Sqrt(3) * Math.Pow(a, 2)) / 4;
return Math.Round(area,4);
}
public static void Main () {
double a = 6;
Console.WriteLine(trianglearea(a));
}
}
|
PHP
<?php
function trianglearea( $a )
{
if ( $a < 0)
return -1;
$area = (3 * sqrt(3) *
pow( $a , 2)) / 4;
return $area ;
}
$a = 6;
echo trianglearea( $a );
?>
|
Javascript
<script>
function trianglearea(a)
{
if (a < 0)
return -1;
var area = (3 * Math.sqrt(3) * Math.pow(a, 2)) / 4;
return area.toFixed(4);
}
var a = 6;
document.write(trianglearea(a));
</script>
|
Time complexity: O(1)
Auxiliary Space: O(1)
Last Updated :
20 Aug, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...