Given **N**-sided polygon we need to find the number of triangles formed by joining the vertices of the given polygon with exactly one side being common.

**Examples:**

Input :6

Output :12

The image below is of a triangle forming inside a Hexagon by joining vertices as shown above. The two triangles formed has one side (AB) common with that of a polygon.It depicts that with one edge of a hexagon we can make two triangles with one side common. We can’t take C or F as our third vertex as it will make 2 sides common with the hexagon.

No of triangles formed ie equal to 12 as there are 6 edges in a hexagon.

Input :5

Output :5

**Approach :**

- To make a triangle with one side common with a polygon the two vertices adjacent to the chosen common vertices cannot be considered as the third vertex of a triangle.
- First select any one edge from the polygon. Consider this edge to be the common edge. Number of ways to select an edge in a polygon would be equal to n.
- Now ,to form a triangle ,select any of the (n-4) vertices left .Two vertices of the common edge and two vertices adjacent to the common edge cannot be considered.
- Number of triangle formed by joining the vertices of an n-sided polygon with one side common would be equal to n * ( n – 4) .

Below is the implementation of the above approach:

## C++

`// C++ program to implement ` `// the above problem ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find the number of triangles ` `void` `findTriangles(` `int` `n) ` `{ ` ` ` `int` `num; ` ` ` `num = n * (n - 4); ` ` ` ` ` `// print the number of triangles ` ` ` `cout << num; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `// initialize the number of sides of a polygon ` ` ` `int` `n; ` ` ` `n = 6; ` ` ` ` ` `findTriangles(n); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to implement ` `// the above problem ` `class` `GFG ` `{ ` ` ` `// Function to find the number of triangles ` `static` `void` `findTriangles(` `int` `n) ` `{ ` ` ` `int` `num; ` ` ` `num = n * (n - ` `4` `); ` ` ` ` ` `// print the number of triangles ` ` ` `System.out.println(num); ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String [] args) ` `{ ` ` ` `// initialize the number of sides of a polygon ` ` ` `int` `n; ` ` ` `n = ` `6` `; ` ` ` ` ` `findTriangles(n); ` ` ` `} ` `} ` ` ` `// This code is contributed by ihritik ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to implement ` `# the above problem ` ` ` `# Function to find the number of triangles ` `def` `findTriangles(n): ` ` ` `num ` `=` `n ` `*` `(n ` `-` `4` `) ` ` ` ` ` `# print the number of triangles ` ` ` `print` `(num) ` ` ` `# Driver code ` `# initialize the number of sides of a polygon ` `n ` `=` `6` ` ` `findTriangles(n) ` ` ` `# This codee is contributed by mohit kumar 29 ` |

*chevron_right*

*filter_none*

## C#

`// C# program to implement ` `// the above problem ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to find the number of triangles ` `static` `void` `findTriangles(` `int` `n) ` `{ ` ` ` `int` `num; ` ` ` `num = n * (n - 4); ` ` ` ` ` `// print the number of triangles ` ` ` `Console.WriteLine(num); ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main() ` `{ ` ` ` `// initialize the number of sides of a polygon ` ` ` `int` `n; ` ` ` `n = 6; ` ` ` ` ` `findTriangles(n); ` ` ` `} ` `} ` ` ` `// This code is contributed by ihritik ` |

*chevron_right*

*filter_none*

**Output:**

12

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

## Recommended Posts:

- Number of triangles formed by joining vertices of n-sided polygon with two common sides and no common sides
- Number of cycles formed by joining vertices of n sided polygon at the center
- Number of ways a convex polygon of n+2 sides can split into triangles by connecting vertices
- Number of occurrences of a given angle formed using 3 vertices of a n-sided regular polygon
- Count of nested polygons that can be drawn by joining vertices internally
- Check if number formed by joining two Numbers is Perfect Cube
- Number of cycles in a Polygon with lines from Centroid to Vertices
- Find the remaining vertices of a square from two given vertices
- Area of a polygon with given n ordered vertices
- Angle between 3 given vertices in a n-sided regular polygon
- Polygon with maximum sides that can be inscribed in an N-sided regular polygon
- Number of triangles formed from a set of points on three lines
- Number of triangles that can be formed with given N points
- Total number of triangles formed when there are H horizontal and V vertical lines
- Number of Triangles that can be formed given a set of lines in Euclidean Plane
- Side of a regular n-sided polygon circumscribed in a circle
- Area of a n-sided regular polygon with given side length
- Minimum side of square embedded in Regular polygon with N sides
- Area of Triangle using Side-Angle-Side (length of two sides and the included angle)
- Maximum count of Equilateral Triangles that can be formed within given Equilateral Triangle

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.