📌  相关文章
📜  给定边长的 n 边正多边形的面积

📅  最后修改于: 2021-10-23 09:13:00             🧑  作者: Mango

给定一个边长为aN边正多边形。任务是找到多边形的面积。
例子:

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))
每个三角形的面积 = (base * height)/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