Tuesday, November 19, 2024
Google search engine
HomeData Modelling & AINth angle of a Polygon whose initial angle and per angle increment...

Nth angle of a Polygon whose initial angle and per angle increment is given

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




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




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




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




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


Javascript




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


Output: 

90

 

Time Complexity: O(1)
Auxiliary Space: O(1)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments