# 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.

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. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.

**Examples:**

Input:d = 5Output:Area = 139.187

Area of regular pentagram = 139.187

Input:d = 7Output:Area = 272.807

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 pentagram = 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 <bits/stdc++.h>` `#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 triangle 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 implementation 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 triangle 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` |

## Python3

`# 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 triangle 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` |

## Javascript

`<script>` `// Javascript implementation of the approach` `var` `PI = 3.14159` `// Function to return the area of triangle BCD` `function` `areaOfTriangle(d)` `{` ` ` `// Using Golden ratio` ` ` `var` `c = 1.618 * d;` ` ` `var` `s = (d + c + c) / 2;` ` ` `// Calculate area of triangle BCD` ` ` `var` `area = Math.sqrt(s * (s - c) *` ` ` `(s - c) * (s - d));` ` ` `// Return area of all 5 triangle are same` ` ` `return` `5 * area;` `}` `// Function to return the area of regular pentagon` `function` `areaOfRegPentagon( d)` `{` ` ` `// Calculate the area of regular` ` ` `// pentagon using above formula` ` ` `var` `cal = 4 * Math.tan(PI / 5);` ` ` `var` `area = (5 * d * d) / cal;` ` ` `// Return area of regular pentagon` ` ` `return` `area;` `}` `// Function to return the area of pentagram` `function` `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` `var` `d = 5;` `document.write(areaOfPentagram(d).toFixed(3));` `// This code is contributed by ShubhamSingh10` `</script>` |

**Output:**

139.187

**Time Complexity : **O(1)