Nth angle of a Polygon whose initial angle and per angle increment is given
Last Updated :
19 Mar, 2021
Given four integers N, A, K, n where N represents the number of sides the polygon, A represents the initial angle of the polygon, K represents the per angle increase, the task is to find the nth angle of the polygon having N sides. If it is not possible then print -1.
Examples:
Input: N = 3, A = 30, K = 30, n = 3
Output: 90
Explanation:
The 3rd angle of the polygon having three sides is 90 degree as the all angles are 30, 60, 90.
Input: N = 4, A = 40, K = 30, n = 3
Output: -1
Explanation:
It is not possible to create that polygon whose initial angle is 40 and no. of sides are 4.
Approach: The idea is to observe that the angles of the polygon are increasing in the terms of Arithmetic Progression by a difference of K degree.
- Find out the angular sum of the N sided polygon and the sum of the angles of the given polygon.
- Check if both the values are equal or not. If yes, then the nth angle is possible hence find the nth angle.
- Otherwise, print -1.
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
bool possible( int N, int a, int b, int n)
{
int sum_of_angle = 180 * (N - 2);
int Total_angle = (N * ((2 * a) + (N - 1) * b)) / 2;
if (sum_of_angle != Total_angle)
return false ;
else
return true ;
}
int nth_angle( int N, int a,
int b, int n)
{
int nth = 0;
nth = a + (n - 1) * b;
return nth;
}
int main()
{
int N = 3, a = 30, b = 30, n = 3;
if (possible(N, a, b, n))
cout << nth_angle(N, a, b, n);
else
cout << "Not Possible" ;
return 0;
}
|
Java
class GFG{
static boolean possible( int N, int a,
int b, int n)
{
int sum_of_angle = 180 * (N - 2 );
int Total_angle = (N * (( 2 * a) +
(N - 1 ) * b)) / 2 ;
if (sum_of_angle != Total_angle)
return false ;
else
return true ;
}
static int nth_angle( int N, int a,
int b, int n)
{
int nth = 0 ;
nth = a + (n - 1 ) * b;
return nth;
}
public static void main(String[] args)
{
int N = 3 , a = 30 , b = 30 , n = 3 ;
if (possible(N, a, b, n))
System.out.print(nth_angle(N, a, b, n));
else
System.out.print( "Not Possible" );
}
}
|
Python3
def possible(N, a, b, n):
sum_of_angle = 180 * (N - 2 )
Total_angle = (N * (( 2 * a) +
(N - 1 ) * b)) / 2
if (sum_of_angle ! = Total_angle):
return False
else :
return True
def nth_angle(N, a, b, n):
nth = 0
nth = a + (n - 1 ) * b
return nth
if __name__ = = '__main__' :
N = 3
a = 30
b = 30
n = 3
if (possible(N, a, b, n)):
print (nth_angle(N, a, b, n))
else :
print ( "Not Possible" )
|
C#
using System;
class GFG{
static bool possible( int N, int a,
int b, int n)
{
int sum_of_angle = 180 * (N - 2);
int Total_angle = (N * ((2 * a) +
(N - 1) * b)) / 2;
if (sum_of_angle != Total_angle)
return false ;
else
return true ;
}
static int nth_angle( int N, int a,
int b, int n)
{
int nth = 0;
nth = a + (n - 1) * b;
return nth;
}
public static void Main( string [] args)
{
int N = 3, a = 30, b = 30, n = 3;
if (possible(N, a, b, n))
Console.Write(nth_angle(N, a, b, n));
else
Console.Write( "Not Possible" );
}
}
|
Javascript
<script>
function possible(N, a, b, n)
{
let sum_of_angle = 180 * (N - 2);
let Total_angle = Math.floor((N * ((2 * a) + (N - 1) * b)) / 2);
if (sum_of_angle != Total_angle)
return false ;
else
return true ;
}
function nth_angle(N, a, b, n)
{
let nth = 0;
nth = a + (n - 1) * b;
return nth;
}
let N = 3, a = 30, b = 30, n = 3;
if (possible(N, a, b, n))
document.write(nth_angle(N, a, b, n));
else
document.write( "Not Possible" );
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...