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++ 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;
} |
// 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 |
# 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 |
// 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 |
<script> // JavaScript program for the above approach // Function to check if the angle // is possible or not function possible(N, a, b, n)
{ // Angular sum of a N-sided polygon
let sum_of_angle = 180 * (N - 2);
// Angular sum of N-sided given polygon
let Total_angle = Math.floor((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 function nth_angle(N, a, b, n)
{ let nth = 0;
// Calculate nth angle
nth = a + (n - 1) * b;
// Return the nth angle
return nth;
} // Driver Code let 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
document.write(nth_angle(N, a, b, n));
else
document.write( "Not Possible" );
// This code is contributed by Surbhi Tyagi. </script> |
90
Time Complexity: O(1)
Auxiliary Space: O(1)