Find number of diagonals in n sided convex polygon
Last Updated :
22 Jun, 2022
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
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;
int numberOfDiagonals( int n)
{
return n * (n - 3) / 2;
}
int main()
{
int n = 5;
cout << n << " sided convex polygon have " ;
cout << numberOfDiagonals(n) << " diagonals" ;
return 0;
}
|
Java
public class Diagonals {
static int numberOfDiagonals( int n)
{
return n * (n - 3 ) / 2 ;
}
public static void main(String[] args)
{
int n = 5 ;
System.out.print(n + " sided convex polygon have " );
System.out.println(numberOfDiagonals(n) + " diagonals" );
}
}
|
Python3
def numberOfDiagonals(n):
return n * (n - 3 ) / 2
def main():
n = 5
print (n , " sided convex polygon have " )
print (numberOfDiagonals(n) , " diagonals" )
if __name__ = = '__main__' :
main()
|
C#
using System;
class GFG {
static int numberOfDiagonals( int n)
{
return n * (n - 3) / 2;
}
public static void Main()
{
int n = 5;
Console.Write(n + " sided convex polygon have " );
Console.WriteLine(numberOfDiagonals(n) +
" diagonals" );
}
}
|
PHP
<?php
function numberOfDiagonals( $n )
{
return $n * ( $n - 3) / 2;
}
$n = 5;
echo $n , " sided convex polygon have " ;
echo numberOfDiagonals( $n ) ,
" diagonals" ;
?>
|
Javascript
<script>
function numberOfDiagonals(n)
{
return n * (n - 3) / 2;
}
var n = 5;
document.write(n + " sided convex polygon have " );
document.write(numberOfDiagonals(n) + " diagonals" );
</script>
|
Output :
5 sided convex polygon have 5 diagonals
Time Complexity: O(1)
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...