Number of triangles formed by joining vertices of n-sided polygon with one side common

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.

Triangle with one side common of a 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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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


Output:

12

Time Complexity: O(1)



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.