Saturday, January 11, 2025
Google search engine
HomeData Modelling & AIFind the length of Kth N-sided polygon formed by given operations

Find the length of Kth N-sided polygon formed by given operations

Given an integer L, representing the side length of an N-sided regular polygon and integer K, the task is to find the side length of the Kth N-sided regular polygon formed inside the (K – 1)th regular polygon by connecting midpoints of the sides of the (K – 1)th polygon.

Examples:

Input: N = 3, L = 6, K = 2
Output: 3

Input: N = 5, L = 21, K = 7
Output: 5.88796

Approach: The given problem can be solved based on the following observations:

  • Suppose,  \theta represents the interior angle of the N-sided polygon which is the same for all the polygons formed inside i.e., \theta = \frac{(N - 2)*180}{N}
  • The length of the side of the first polygon formed inside by connecting midpoints of the sides can be calculated using the formula as \frac{2*L*sin(\frac{\theta}{2})}{2}            .
  • The length of the side of the Kth polygon formed inside the (K – 1)th polygon and connecting midpoints of the sides of the (K – 1)th polygon is L*Sin^{K - 1}(\frac{\theta}{2})

Follow the steps below to solve the problem:

Below is the implementation of the above approach:

C++




// C++ program for the above approach
 
#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159265
 
// Function to calculate the interior
// angle of a N-sided regular polygon
double findInteriorAngle(int n)
{
    return (n - 2) * PI / n;
}
 
// Function to find the K-th polygon
// formed inside the (K - 1)th polygon
double calculateSideLength(double L,
                           int N, int K)
{
    // Stores the interior angle
    double angle = findInteriorAngle(N);
 
    // Stores the side length of
    // K-th regular polygon
    double length = L * pow(sin(angle / 2),
                            (K - 1));
 
    // Return the length
    return length;
}
 
// Driver Code
int main()
{
    double N = 5, L = 21, K = 7;
    cout << calculateSideLength(L, N, K);
 
    return 0;
}


Java




// Java program for the above approach
import java.util.*;
 
class GFG{
     
static final double PI = 3.14159265;
 
// Function to calculate the interior
// angle of a N-sided regular polygon
static double findInteriorAngle(int n)
{
    return ((n - 2) * PI) / n;
}
 
// Function to find the K-th polygon
// formed inside the (K - 1)th polygon
static double calculateSideLength(double L,
                                  int N, int K)
{
     
    // Stores the interior angle
    double angle = findInteriorAngle(N);
 
    // Stores the side length of
    // K-th regular polygon
    double length = L * Math.pow(Math.sin(angle / 2),
                                             (K - 1));
 
    // Return the length
    return length;
}
 
// Driver Code
public static void main(String[] args)
{
    double L = 21;
    int N = 5, K = 7;
     
    System.out.print(calculateSideLength(L, N, K));
}
}
 
// This code is contributed by 29AjayKumar


Python3




# Python3 program for the above approach
import math
PI = 3.14159265
 
# Function to calculate the interior
# angle of a N-sided regular polygon
def findInteriorAngle(n):
 
    return (n - 2) * PI / n
 
# Function to find the K-th polygon
# formed inside the (K - 1)th polygon
def calculateSideLength(L,
                        N, K):
 
    # Stores the interior angle
    angle = findInteriorAngle(N)
 
    # Stores the side length of
    # K-th regular polygon
    length = L * pow(math.sin(angle / 2),
                     (K - 1))
 
    # Return the length
    return length
 
 
# Driver Code
if __name__ == "__main__":
 
    N = 5
    L = 21
    K = 7
    print(calculateSideLength(L, N, K))
 
    # This code is contributed by ukasp.


C#




// C# program for the above approach
using System;
 
class GFG{
     
static readonly double PI = 3.14159265;
 
// Function to calculate the interior
// angle of a N-sided regular polygon
static double findInteriorAngle(int n)
{
    return ((n - 2) * PI) / n;
}
 
// Function to find the K-th polygon
// formed inside the (K - 1)th polygon
static double calculateSideLength(double L,
                                  int N, int K)
{
     
    // Stores the interior angle
    double angle = findInteriorAngle(N);
 
    // Stores the side length of
    // K-th regular polygon
    double length = L * Math.Pow(Math.Sin(angle / 2),
                                             (K - 1));
 
    // Return the length
    return length;
}
 
// Driver Code
public static void Main(String[] args)
{
    double L = 21;
    int N = 5, K = 7;
     
    Console.Write(calculateSideLength(L, N, K));
}
}
 
// This code is contributed by 29AjayKumar


Javascript




<script>
 
        // Javascript program for the above approach
        const PI = 3.14159265
         
        // Function to calculate the interior
        // angle of a N-sided regular polygon
        function findInteriorAngle(n)
        {
            return (n - 2) * PI / n;
        }
 
        // Function to find the K-th polygon
        // formed inside the (K - 1)th polygon
        function calculateSideLength(L,
            N, K) {
            // Stores the interior angle
            let angle = findInteriorAngle(N);
 
            // Stores the side length of
            // K-th regular polygon
            let length = L * Math.pow(Math.sin(angle / 2),
                (K - 1));
 
            // Return the length
            return length;
        }
 
        // Driver Code
 
        let N = 5
        let L = 21
        let K = 7;
        document.write(calculateSideLength(L, N, K))
 
    </script>


Output: 

5.88796

 

Time Complexity: O(log K)
Auxiliary Space: O(1),  since no extra space has been taken.

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!

Last Updated :
20 Jul, 2022
Like Article
Save Article


Previous

<!–

8 Min Read | Java

–>


Next


<!–

8 Min Read | Java

–>

RELATED ARTICLES

Most Popular

Recent Comments