这里给出的是一个正六边形,边长为a的,任务是找到可以在它被列入最大的三角形的面积。
例子:
Input: a = 6
Output: area = 46.7654
Input: a = 8
Output: area = 83.1384
方法:
It is very clear that the biggest triangle that can be inscribed within the hexagon is an equilateral triangle.
In triangle ACD,
following pythagorus 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
下面是上述方法的实现:
C++
// C++ Program to find the biggest triangle
// which can be inscribed within the hexagon
#include
using namespace std;
// Function to find the area
// of the triangle
float trianglearea(float a)
{
// side cannot be negative
if (a < 0)
return -1;
// area of the triangle
float area = (3 * sqrt(3) * pow(a, 2)) / 4;
return area;
}
// Driver code
int main()
{
float a = 6;
cout << trianglearea(a) << endl;
return 0;
}
Java
// Java Program to find the biggest triangle
// which can be inscribed within the hexagon
import java.io.*;
class GFG {
// Function to find the area
// of the triangle
static double trianglearea(double a)
{
// side cannot be negative
if (a < 0)
return -1;
// area of the triangle
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));
}
//This Code is contributed by Sachin..
}
Python3
# Python3 Program to find the biggest triangle
# which can be inscribed within the hexagon
import math
# Function to find the area
# of the triangle
def trianglearea(a):
# side cannot be negative
if (a < 0):
return -1;
# area of the triangle
area = (3 * math.sqrt(3) * math.pow(a, 2)) / 4;
return area;
# Driver code
a = 6;
print(trianglearea(a))
# This code is contributed
# by Akanksha Rai
C#
// C# Program to find the biggest triangle
// which can be inscribed within the hexagon
using System;
class GFG {
// Function to find the area
// of the triangle
static double trianglearea(double a)
{
// side cannot be negative
if (a < 0)
return -1;
// area of the triangle
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));
}
// This code is contributed by Ryuga
}
PHP
Javascript
输出:
46.7654