给定N边的规则多边形,边长为a 。任务是找到多边形的区域。
例子:
Input : N = 6, a = 9
Output : 210.444
Input : N = 7, a = 8
Output : 232.571
方法:在上图中,我们可以看到多边形可以分为N个相等的三角形。查看三角形中的一个,我们可以看到中心的整个角度可以分为= 360 / N
因此,角度t = 180 / n
现在, tan(t)= a / 2 * h
因此, h = a /(2 * tan(t))
每个三角形的面积= (基数*高度)/ 2 = a * a /(4 * tan(t))
因此,多边形的面积
A = n * (area of one triangle) = a2 * n/(4tan t)
下面是上述方法的实现:
C++
// C++ Program to find the area of a regular
// polygon with given side length
#include
using namespace std;
// Function to find the area
// of a regular polygon
float polyarea(float n, float a)
{
// Side and side length cannot be negative
if (a < 0 && n < 0)
return -1;
// Area
// degree converted to radians
float A = (a * a * n) / (4 * tan((180 / n) * 3.14159 / 180));
return A;
}
// Driver code
int main()
{
float a = 9, n = 6;
cout << polyarea(n, a) << endl;
return 0;
}
Java
// Java Program to find the area of a regular
// polygon with given side length
import java.io.*;
class GFG {
// Function to find the area
// of a regular polygon
static float polyarea(float n, float a)
{
// Side and side length cannot be negative
if (a < 0 && n < 0)
return -1;
// Area
// degree converted to radians
float A = (a * a * n) /(float) (4 * Math.tan((180 / n) * 3.14159 / 180));
return A;
}
// Driver code
public static void main (String[] args) {
float a = 9, n = 6;
System.out.println( polyarea(n, a));
}
}
// This code is contributed by inder_verma..
Python3
# Python 3 Program to find the area
# of a regular polygon with given
# side length
from math import tan
# Function to find the area of a
# regular polygon
def polyarea(n, a):
# Side and side length cannot
# be negative
if (a < 0 and n < 0):
return -1
# Area degree converted to radians
A = (a * a * n) / (4 * tan((180 / n) *
3.14159 / 180))
return A
# Driver code
if __name__ == '__main__':
a = 9
n = 6
print('{0:.6}'.format(polyarea(n, a)))
# This code is contributed by
# Shashank_sharma
C#
// C# Program to find the area of a regular
// polygon with given side length
using System;
class GFG
{
// Function to find the area
// of a regular polygon
static float polyarea(float n, float a)
{
// Side and side length cannot be negative
if (a < 0 && n < 0)
return -1;
// Area
// degree converted to radians
float A = (a * a * n) / (float)(4 * Math.Tan((180 / n) *
3.14159 / 180));
return A;
}
// Driver code
public static void Main ()
{
float a = 9, n = 6;
Console.WriteLine(polyarea(n, a));
}
}
// This code is contributed
// by Akanksha Rai
PHP
Javascript
输出:
210.444