给定整数a ,它是正六边形的边,任务是查找并打印其对角线的长度。
例子:
Input: a = 6
Output: 10.38
Input: a = 9
Output: 15.57
方法:我们知道多边形的内角总和= (n – 2)* 180 ,其中, n是多边形的边数。
因此,六边形的内角之和= 4 * 180 = 720 ,每个内角将为120 。
现在,我们必须找到BC = 2 * x 。如果在BC上绘制垂直AO ,我们将看到BO和OC中的垂直二等分BC ,因为三角形AOB和AOC彼此相等。
因此,在三角形AOB中, sin(60)= x / a,即x = 0.866 * a
因此,对角线长度将为2 * x,即1.73 * a 。
下面是上述方法的实现:
C++
// C++ Program to find the diagonal
// of a regular hexagon
#include
using namespace std;
// Function to find the diagonal
// of a regular hexagon
float hexDiagonal(float a)
{
// Side cannot be negative
if (a < 0)
return -1;
// Length of the diagonal
float d = 1.73 * a;
return d;
}
// Driver code
int main()
{
float a = 9;
cout << hexDiagonal(a) << endl;
return 0;
}
Java
// Java Program to find the diagonal
// of a regular hexagon
public class GFG
{
// Function to find the diagonal
// of a regular hexagon
static double hexDiagonal(float a)
{
// Side cannot be negative
if (a < 0)
return -1;
// Length of the diagonal
double d = (double)1.73 * a;
return d;
}
// Driver code
public static void main(String []args)
{
float a = 9;
System.out.println(hexDiagonal(a)) ;
}
// This code is contributed by Ryuga
}
Python3
# Python3 Program to find the diagonal
# of a regular hexagon
# Function to find the diagonal
# of a regular hexagon
def hexDiagonal(a):
# Side cannot be negative
if (a < 0):
return -1;
# Length of the diagonal
d = 1.73 * a;
return d;
# Driver code
a = 9;
print(hexDiagonal(a));
# This code is contributed
# by Akanksha Rai
C#
// C# Program to find the diagonal
// of a regular hexagon
using System ;
public class GFG
{
// Function to find the diagonal
// of a regular hexagon
static double hexDiagonal(float a)
{
// Side cannot be negative
if (a < 0)
return -1;
// Length of the diagonal
double d = (double)1.73 * a;
return d;
}
// Driver code
public static void Main()
{
float a = 9;
Console.WriteLine(hexDiagonal(a)) ;
}
// This code is contributed by Subhadeep
}
PHP
Javascript
输出:
15.57