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 **n ^{th}** angle of the polygon having

**N sides**. If it is not possible then print

**-1**.

**Examples:**

Input:N = 3, A = 30, K = 30, n = 3Output:90Explanation:

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 = 3Output:-1Explanation:

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

`// C++ program for the above approach` `#include <iostream>` `using` `namespace` `std;` `// Function to check if the angle` `// is possible or not` `bool` `possible(` `int` `N, ` `int` `a, ` `int` `b, ` `int` `n)` `{` ` ` `// Angular sum of a N-sided polygon` ` ` `int` `sum_of_angle = 180 * (N - 2);` ` ` `// Angular sum of N-sided given polygon` ` ` `int` `Total_angle = (N * ((2 * a)` ` ` `+ (N - 1) * b))` ` ` `/ 2;` ` ` `// Check if both sum are equal` ` ` `if` `(sum_of_angle != Total_angle)` ` ` `return` `false` `;` ` ` `else` ` ` `return` `true` `;` `}` `// Function to find the nth angle` `int` `nth_angle(` `int` `N, ` `int` `a,` ` ` `int` `b, ` `int` `n)` `{` ` ` `int` `nth = 0;` ` ` `// Calculate nth angle` ` ` `nth = a + (n - 1) * b;` ` ` `// Return the nth angle` ` ` `return` `nth;` `}` `// Driver Code` `int` `main()` `{` ` ` `int` `N = 3, a = 30, b = 30, n = 3;` ` ` `// Checks the possibility of the` ` ` `// polygon exist or not` ` ` `if` `(possible(N, a, b, n))` ` ` `// Print nth angle` ` ` `// of the polygon` ` ` `cout << nth_angle(N, a, b, n);` ` ` `else` ` ` `cout << ` `"Not Possible"` `;` ` ` `return` `0;` `}` |

*chevron_right*

*filter_none*

## Java

`// Java program for the above approach ` `class` `GFG{ ` `// Function to check if the angle ` `// is possible or not ` `static` `boolean` `possible(` `int` `N, ` `int` `a,` ` ` `int` `b, ` `int` `n) ` `{ ` ` ` ` ` `// Angular sum of a N-sided polygon ` ` ` `int` `sum_of_angle = ` `180` `* (N - ` `2` `); ` ` ` `// Angular sum of N-sided given polygon ` ` ` `int` `Total_angle = (N * ((` `2` `* a) + ` ` ` `(N - ` `1` `) * b)) / ` `2` `; ` ` ` `// Check if both sum are equal ` ` ` `if` `(sum_of_angle != Total_angle) ` ` ` `return` `false` `; ` ` ` `else` ` ` `return` `true` `; ` `} ` `// Function to find the nth angle ` `static` `int` `nth_angle(` `int` `N, ` `int` `a, ` ` ` `int` `b, ` `int` `n) ` `{ ` ` ` `int` `nth = ` `0` `; ` ` ` `// Calculate nth angle ` ` ` `nth = a + (n - ` `1` `) * b; ` ` ` `// Return the nth angle ` ` ` `return` `nth; ` `} ` `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `int` `N = ` `3` `, a = ` `30` `, b = ` `30` `, n = ` `3` `; ` ` ` `// Checks the possibility of the ` ` ` `// polygon exist or not ` ` ` `if` `(possible(N, a, b, n)) ` ` ` ` ` `// Print nth angle ` ` ` `// of the polygon ` ` ` `System.out.print(nth_angle(N, a, b, n)); ` ` ` `else` ` ` `System.out.print(` `"Not Possible"` `); ` `}` `}` `// This code is contributed by amal kumar choubey` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program for the above approach` `# Function to check if the angle` `# is possible or not` `def` `possible(N, a, b, n):` ` ` ` ` `# Angular sum of a N-sided polygon` ` ` `sum_of_angle ` `=` `180` `*` `(N ` `-` `2` `)` ` ` `# Angular sum of N-sided given polygon` ` ` `Total_angle ` `=` `(N ` `*` `((` `2` `*` `a) ` `+` ` ` `(N ` `-` `1` `) ` `*` `b)) ` `/` `2` ` ` `# Check if both sum are equal` ` ` `if` `(sum_of_angle !` `=` `Total_angle):` ` ` `return` `False` ` ` `else` `:` ` ` `return` `True` `# Function to find the nth angle` `def` `nth_angle(N, a, b, n):` ` ` `nth ` `=` `0` ` ` `# Calculate nth angle` ` ` `nth ` `=` `a ` `+` `(n ` `-` `1` `) ` `*` `b` ` ` `# Return the nth angle` ` ` `return` `nth` `# Driver Code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` `N ` `=` `3` ` ` `a ` `=` `30` ` ` `b ` `=` `30` ` ` `n ` `=` `3` ` ` `# Checks the possibility of the` ` ` `# polygon exist or not` ` ` `if` `(possible(N, a, b, n)):` ` ` `# Print nth angle` ` ` `# of the polygon` ` ` `print` `(nth_angle(N, a, b, n))` ` ` `else` `:` ` ` `print` `(` `"Not Possible"` `)` `# This code is contributed by Mohit Kumar` |

*chevron_right*

*filter_none*

## C#

`// C# program for the above approach ` `using` `System;` `class` `GFG{ ` ` ` `// Function to check if the angle ` `// is possible or not ` `static` `bool` `possible(` `int` `N, ` `int` `a,` ` ` `int` `b, ` `int` `n) ` `{ ` ` ` ` ` `// Angular sum of a N-sided polygon ` ` ` `int` `sum_of_angle = 180 * (N - 2); ` ` ` ` ` `// Angular sum of N-sided given polygon ` ` ` `int` `Total_angle = (N * ((2 * a) + ` ` ` `(N - 1) * b)) / 2; ` ` ` ` ` `// Check if both sum are equal ` ` ` `if` `(sum_of_angle != Total_angle) ` ` ` `return` `false` `; ` ` ` `else` ` ` `return` `true` `; ` `} ` ` ` `// Function to find the nth angle ` `static` `int` `nth_angle(` `int` `N, ` `int` `a, ` ` ` `int` `b, ` `int` `n) ` `{ ` ` ` `int` `nth = 0; ` ` ` ` ` `// Calculate nth angle ` ` ` `nth = a + (n - 1) * b; ` ` ` ` ` `// Return the nth angle ` ` ` `return` `nth; ` `} ` ` ` `// Driver Code ` `public` `static` `void` `Main(` `string` `[] args) ` `{ ` ` ` `int` `N = 3, a = 30, b = 30, n = 3; ` ` ` ` ` `// Checks the possibility of the ` ` ` `// polygon exist or not ` ` ` `if` `(possible(N, a, b, n)) ` ` ` ` ` `// Print nth angle ` ` ` `// of the polygon ` ` ` `Console.Write(nth_angle(N, a, b, n)); ` ` ` `else` ` ` `Console.Write(` `"Not Possible"` `); ` `}` `}` ` ` `// This code is contributed by Ritik Bansal` |

*chevron_right*

*filter_none*

**Output:**

90

**Time Complexity:** O(1)**Auxiliary Space:** 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:

- Check if it is possible to create a polygon with a given angle
- Angle between 3 given vertices in a n-sided regular polygon
- Number of occurrences of a given angle formed using 3 vertices of a n-sided regular polygon
- Angle between a chord and a tangent when angle in the alternate segment is given
- Program to find the Interior and Exterior Angle of a Regular Polygon
- Angle subtended by the chord when the angle subtended by another chord of same length is given
- Exterior angle of a cyclic quadrilateral when the opposite interior angle is given
- Angle subtended by the chord to center of the circle when the angle subtended by the another equal chord of a congruent circle is given
- Program to calculate angle on circumference subtended by the chord when the central angle subtended by the chord is given
- Central angle of a N sided Regular Polygon
- Find the angle of Rotational Symmetry of an N-sided regular polygon
- Area of Triangle using Side-Angle-Side (length of two sides and the included angle)
- Is it possible to reach N and M from 1 and 0 respectively as per given conditio
- Length of the chord of the circle whose radius and the angle subtended at the center by the chord is given
- Minimum initial vertices to traverse whole matrix with given conditions
- Find total no of collisions taking place between the balls in which initial direction of each ball is given
- Find initial sequence that produces a given Array by cyclic increments upto index P
- Maximum number of objects that can be created as per given conditions
- Maximize Profit by trading stocks based on given rate per day
- Minimum cost to reduce the integer N to 1 as per given conditions

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.