Encuentra el ángulo de simetría rotacional de un polígono regular de N lados

Dado un número entero N que es el número de lados de un polígono regular. La tarea es encontrar el ángulo de rotación más pequeño para que los polígonos regulares generados tengan una posición y dimensiones similares, es decir, el nuevo polígono rotado está en simetría con el inicial.

Se dice que una forma tiene una simetría de rotación si existe una rotación en el rango [1, 360 o ] tal que la nueva forma se superpone completamente a la forma inicial.

Ejemplos:  

Entrada: N = 4 
Salida: 90 
Explicación: 
Un polígono regular de 4 lados es un cuadrado y cuando se gira 90 grados da como resultado un cuadrado similar.

Entrada: N = 8 
Salida: 45 
 

Aproximación: para cualquier polígono regular de N lados, cuando se gira 360 grados, se alinea en la posición original del polígono. Para encontrar el ángulo mínimo de rotación usamos la propiedad de simetría de los polígonos regulares. Para un polígono regular de N lados cuando se rota 360/N grados , el polígono rotado está en la misma posición que el polígono original, que es el ángulo exterior de un polígono regular de N lados .

Por ejemplo: 
Considere N = 4, 

A continuación se muestra la implementación del enfoque anterior. 

C++

// C++ program to find the angle
// of Rotational Symmetry of
// an N-sided regular polygon
 
#include <bits/stdc++.h>
using namespace std;
 
// function to find required
// minimum angle of rotation
double minAnglRot(int N)
{
    // Store the answer in
    // a double variable
    double res;
 
    // Calculating the angle
    // of rotation and type-
    // casting the integer N
    // to double type
    res = 360 / (double)N;
 
    return res;
}
 
// Driver code
int main()
{
    int N = 4;
    cout << "Angle of Rotational Symmetry: "
         << minAnglRot(N);
    return 0;
}

Java

// Java program to find the angle
// of Rotational Symmetry of
// an N-sided regular polygon
import java.io.*;
class GFG
{
 
// function to find required
// minimum angle of rotation
static double minAnglRot(int N)
{
    // Store the answer in
    // a double variable
    double res;
 
    // Calculating the angle
    // of rotation and type-
    // casting the integer N
    // to double type
    res = 360 / (double)N;
 
    return res;
}
 
// Driver code
public static void main (String[] args)
{
    int N = 4;
    System.out.println("Angle of Rotational Symmetry: " +
                                          minAnglRot(N));
}
}
 
// This code is contributed by shivanisinghss2110

Python3

# Python3 program to find the angle
# of Rotational Symmetry of
# an N-sided regular polygon
 
# Function to find required
# minimum angle of rotation
def minAnglRot(N):
     
    # Store the answer in a
    # variable
     
    # Calculating the angle
    # of rotation and type-
    # casting the integer N
    # to type
    res = 360 // N
 
    return res
 
# Driver code
if __name__ == '__main__':
     
    N = 4;
     
    print("Angle of Rotational Symmetry: ",
          minAnglRot(N))
 
# This code is contributed by mohit kumar 29   

C#

// C# program to find the angle
// of Rotational Symmetry of
// an N-sided regular polygon
using System;
class GFG
{
  
// function to find required
// minimum angle of rotation
static double minAnglRot(int N)
{
    // Store the answer in
    // a double variable
    double res;
  
    // Calculating the angle
    // of rotation and type-
    // casting the integer N
    // to double type
    res = 360 / (double)N;
  
    return res;
}
  
// Driver code
public static void Main (string[] args)
{
    int N = 4;
    Console.Write("Angle of Rotational Symmetry: " +
                                     minAnglRot(N));
}
}
  
// This code is contributed by rock_cool

Javascript

<script>
 
// Javascript program to find the angle
// of Rotational Symmetry of an N-sided
// regular polygon
 
// Function to find required
// minimum angle of rotation
function minAnglRot(N)
{
     
    // Store the answer in
    // a double variable
    let res;
 
    // Calculating the angle of
    // rotation and type-casting
    // the integer N to double type
    res = 360 / N;
 
    return res;
}
 
// Driver code
let N = 4;
 
document.write("Angle of Rotational Symmetry: " +
               minAnglRot(N));
 
// This code is contributed by divyeshrabadiya07
 
</script>
Producción: 

Angle of Rotational Symmetry: 90

 

Complejidad Temporal: O (1)  
Espacio Auxiliar: O (1)
 

Publicación traducida automáticamente

Artículo escrito por codeku y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *