Tutorialspoint.dev

Find number of diagonals in n sided convex polygon

Given n > 3, find number of diagonals in n sided convex polygon.

According to Wikipedia, In geometry, a diagonal is a line segment joining two vertices of a polygon or polyhedron, when those vertices are not on the same edge. Informally, any sloping line is called diagonal.

Examples :

Input : 5
Output : 5

Explanation: Five possible diagonals are : AC, AD, BD, BE, CE



Solution :

Since for an n-sided convex polygon, from each vertex, we can draw n-3 diagonals leaving two adjacent vertices and itself. Following this way for n-vertices, there will be n*(n-3) diagonals but then we will be calculating each diagonal twice so total number of diagonals become n*(n-3)/2

Here is code for above formula.

C++

#include <iostream>
using namespace std;
  
// C++ function to find number of diagonals
// in n sided convex polygon
int numberOfDiagonals(int n)
{
    return n * (n - 3) / 2;
}
  
// driver code to test above function
int main()
{
    int n = 5;
    cout << n << " sided convex polygon have ";
    cout << numberOfDiagonals(n) << " diagonals";
    return 0;
}

Java

// Java function to find number of diagonals
// in n sided convex polygon
  
public class Diagonals {
  
    static int numberOfDiagonals(int n)
    {
        return n * (n - 3) / 2;
    }
  
    // driver code to test above function
    public static void main(String[] args)
    {
        int n = 5;
        System.out.print(n + " sided convex polygon have ");
        System.out.println(numberOfDiagonals(n) + " diagonals");
    }
}
  
// This code is contributed by Saket Kumar

Python3

# Python3 program to find number of diagonals
# in n sided convex polygon
def numberOfDiagonals(n):
    return n * (n - 3) / 2
  
   
# driver code to test above function
def main():
    n = 5
    print(n , " sided convex polygon have ")
    print(numberOfDiagonals(n) , " diagonals")
  
if __name__ == '__main__':
    main()
  
#this code contributed by 29AjayKumar

C#

// C# function to find number of diagonals
// in n sided convex polygon
using System;
  
class GFG {
      
    static int numberOfDiagonals(int n)
    {
        return n * (n - 3) / 2;
    }
  
    // driver code to test above function
    public static void Main()
    {
        int n = 5;
        Console.Write(n + " sided convex polygon have ");
          
        Console.WriteLine(numberOfDiagonals(n) +
                                  " diagonals");
    }
}
  
// This code is contributed by Sam007

PHP

<?php
// PHP function to find number
// of diagonals in n sided
// convex polygon
function numberOfDiagonals($n)
{
    return $n * ($n - 3) / 2;
}
  
// Driver Code
$n = 5;
echo $n , " sided convex polygon have ";
echo numberOfDiagonals($n) , 
               " diagonals";
      
// This code is contributed by aj_36
?>


Output :

5 sided convex polygon have 5 diagonals

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter