# Area of a Regular Pentagram

Given a Pentagram and it’s inner side length(d). The task is find out area of Pentagram. The Pentagram is a five-pointed star that is formed by drawing a continuous line in five straight segments. Examples:

Input: d = 5
Output: Area = 139.187
Area of regular pentagram = 139.187
Input: d = 7
Output: Area = 272.807

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Idea is to use Golden Ratio between a/b, b/c, and c/d which equals approximately 1.618
Inner side length d is given so
c = 1.618 * d
b = 1.618 * c
a = 1.618 * b

AB, BC and CD are equals(both side of regular pentagram)
So AB = BC = CD = c and BD is given by d.

Area of pentgram = Area of Pentagon BDFHJ + 5 * (Area of triangle BCD)
Area of Pentagon BDFHJ = (d^2 * 5)/ (4* tan 36)
Area of triangle BCD = [s(s-d)(s-c)(s-c)]^(1/2) {Heron’s Formula}
where
s = (d + c + c)/2

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `#define PI 3.14159 ` `using` `namespace` `std; ` ` `  `// Function to return the area of triangle BCD ` `double` `areaOfTriangle(``float` `d) ` `{ ` `    ``// Using Golden ratio ` `    ``float` `c = 1.618 * d; ` `    ``float` `s = (d + c + c) / 2; ` ` `  `    ``// Calculate area of triangle BCD ` `    ``double` `area = ``sqrt``(s * (s - c) * ` `                          ``(s - c) * (s - d)); ` ` `  `    ``// Return area of all 5 trianlge are same ` `    ``return` `5 * area; ` `} ` ` `  `// Function to return the area of regular pentagon ` `double` `areaOfRegPentagon(``float` `d) ` `{ ` `    ``// Calculate the area of regular ` `    ``// pentagon using above formula ` `    ``double` `cal = 4 * ``tan``(PI / 5); ` `    ``double` `area = (5 * d * d) / cal; ` ` `  `    ``// Return area of regular pentagon ` `    ``return` `area; ` `} ` ` `  `// Function to return the area of pentagram ` `double` `areaOfPentagram(``float` `d) ` `{ ` `    ``// Area of a pentagram is equal to the  ` `    ``// area of regular  pentagon and five times  ` `    ``// the area of Triangle ` `    ``return` `areaOfRegPentagon(d) +  ` `                             ``areaOfTriangle(d); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``float` `d = 5; ` `    ``cout << areaOfPentagram(d) << endl; ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implemenation of above approach ` `public` `class` `GFG  ` `{ ` ` `  `    ``static` `double` `PI = ``3.14159``; ` ` `  `    ``// Function to return the area of triangle BCD ` `    ``static` `double` `areaOfTriangle(``float` `d)  ` `    ``{ ` `        ``// Using Golden ratio ` `        ``float` `c = (``float``) (``1.618` `* d); ` `        ``float` `s = (d + c + c) / ``2``; ` ` `  `        ``// Calculate area of triangle BCD ` `        ``double` `area = Math.sqrt(s * (s - c) ` `                ``* (s - c) * (s - d)); ` ` `  `        ``// Return area of all 5 trianlge are same ` `        ``return` `5` `* area; ` `    ``} ` ` `  `    ``// Function to return the area of regular pentagon ` `    ``static` `double` `areaOfRegPentagon(``float` `d) ` `    ``{ ` `        ``// Calculate the area of regular ` `        ``// pentagon using above formula ` `        ``double` `cal = ``4` `* Math.tan(PI / ``5``); ` `        ``double` `area = (``5` `* d * d) / cal; ` ` `  `        ``// Return area of regular pentagon ` `        ``return` `area; ` `    ``} ` ` `  `    ``// Function to return the area of pentagram ` `    ``static` `double` `areaOfPentagram(``float` `d)  ` `    ``{ ` `        ``// Area of a pentagram is equal to the  ` `        ``// area of regular pentagon and five times  ` `        ``// the area of Triangle ` `        ``return` `areaOfRegPentagon(d) ` `                ``+ areaOfTriangle(d); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `        ``float` `d = ``5``; ` `        ``System.out.println(areaOfPentagram(d)); ` `    ``} ` `} ` ` `  `// This code has been contributed by 29AjayKumar `

## Python

 `# Python3 implementation of the approach ` ` `  `import` `math ` ` `  `PI ``=` `3.14159` ` `  `# Function to return the area of triangle BCD ` `def` `areaOfTriangle(d) : ` ` `  `    ``# Using Golden ratio ` `    ``c ``=` `1.618` `*` `d ` `    ``s ``=` `(d ``+` `c ``+` `c) ``/` `2` ` `  `    ``# Calculate area of triangle BCD ` `    ``area ``=` `math.sqrt(s ``*` `(s ``-` `c) ``*` `                        ``(s ``-` `c) ``*` `(s ``-` `d)) ` ` `  `    ``# Return area of all 5 triangles are the same ` `    ``return` `5` `*` `area ` ` `  ` `  `# Function to return the area of regular pentagon ` `def` `areaOfRegPentagon(d) : ` `     `  `    ``global` `PI ` `    ``# Calculate the area of regular ` `    ``# pentagon using above formula ` `    ``cal ``=` `4` `*` `math.tan(PI ``/` `5``) ` `    ``area ``=` `(``5` `*` `d ``*` `d) ``/` `cal ` `     `  `    ``# Return area of regular pentagon ` `    ``return` `area ` ` `  ` `  `# Function to return the area of pentagram ` `def` `areaOfPentagram(d) : ` ` `  `    ``# Area of a pentagram is equal to the  ` `    ``# area of regular pentagon and five times  ` `    ``# the area of Triangle ` `    ``return` `areaOfRegPentagon(d) ``+` `areaOfTriangle(d) ` ` `  ` `  `# Driver code ` ` `  `d ``=` `5` `print``(areaOfPentagram(d))  ` ` `  `     `  `# This code is contributed by ihritik `

## C#

 `// C# implementation of the above approach ` `using` `System; ` ` `  `class` `GFG  ` `{ ` ` `  `    ``static` `double` `PI = 3.14159; ` ` `  `    ``// Function to return the area of triangle BCD ` `    ``static` `double` `areaOfTriangle(``float` `d)  ` `    ``{ ` `        ``// Using Golden ratio ` `        ``float` `c = (``float``) (1.618 * d); ` `        ``float` `s = (d + c + c) / 2; ` ` `  `        ``// Calculate area of triangle BCD ` `        ``double` `area = Math.Sqrt(s * (s - c) ` `                ``* (s - c) * (s - d)); ` ` `  `        ``// Return area of all 5 trianlge are same ` `        ``return` `5 * area; ` `    ``} ` ` `  `    ``// Function to return the area of regular pentagon ` `    ``static` `double` `areaOfRegPentagon(``float` `d) ` `    ``{ ` `        ``// Calculate the area of regular ` `        ``// pentagon using above formula ` `        ``double` `cal = 4 * Math.Tan(PI / 5); ` `        ``double` `area = (5 * d * d) / cal; ` ` `  `        ``// Return area of regular pentagon ` `        ``return` `area; ` `    ``} ` ` `  `    ``// Function to return the area of pentagram ` `    ``static` `double` `areaOfPentagram(``float` `d)  ` `    ``{ ` `        ``// Area of a pentagram is equal to the  ` `        ``// area of regular pentagon and five times  ` `        ``// the area of Triangle ` `        ``return` `areaOfRegPentagon(d) ` `                ``+ areaOfTriangle(d); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``float` `d = 5; ` `        ``Console.WriteLine(areaOfPentagram(d)); ` `    ``} ` `} ` ` `  `// This code has been contributed by ihritik `

Output:

```139.187
```

Time Complexity : O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.