Suma de los lados de los polígonos secundarios más grandes y más pequeños posibles de un polígono dado

Dado un número entero A que representa el ángulo externo ( en grados ) de un polígono convexo regular , la tarea es encontrar la suma de los lados de los polígonos secundarios más grande y más pequeño formados de manera que cada borde del polígono secundario sea una cuerda del polígono primario. polígono. Si no es posible formar dichos polígonos, imprima «-1» .

Ejemplos:

Entrada: A = 45
Salida: 7
Explicación:
El polígono principal es un octágono de 8 lados.
Por lo tanto, el polígono secundario más pequeño consta de 3 aristas y el polígono secundario más grande consta de 4 aristas.

Suma de aristas del polígono secundario más pequeño + Aristas del polígono secundario más grande = 3 + 4 = 7.

Entrada: A = 60
Salida: 6
Explicación: El polígono principal es un hexágono que consta de 6 lados. Por lo tanto, el polígono secundario más pequeño consta de 3 aristas y el polígono secundario más grande consta de 3 aristas.

Enfoque: La idea es primero encontrar el número de aristas en el polígono primario y luego verificar si es posible hacer polígonos secundarios o no. Siga los pasos a continuación para resolver el problema:

  • La suma de los ángulos externos en un polígono regular es 360 grados. Por tanto, el número de lados = 360 / ángulo externo.
  • El número de lados del polígono secundario máximo es el número de lados del polígono primario / 2.
  • Como polígono es posible si el número de aristas es al menos 3 , un polígono secundario es posible si las aristas del polígono inicial ≥ 6 .
  • El polígono más pequeño posible tiene 3 aristas siempre.
  • Imprime la suma del número de lados tanto en el polígono más grande como en el más pequeño.

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

C++

#include <bits/stdc++.h>
using namespace std;
 
// Function to find the sum of largest and
// smallest secondary polygons if possible
void secondary_polygon(int Angle)
{
 
    // Count edges of primary polygon
    int edges_primary = 360/Angle;
 
    if (edges_primary >= 6)
    {
 
        // Calculate edges present in
        // the largest secondary polygon
        int edges_max_secondary = edges_primary / 2;
 
        cout << edges_max_secondary + 3;
    }
    else
        cout << "Not Possible";
}
 
// Driver Code
int main()
{
   
  // Given Exterior Angle
  int Angle = 45;
  secondary_polygon(Angle);
 
  return 0;
}
 
// This code is contributed by mohit kumar 29.

Java

// Java program for the above approach
import java.io.*;
import java.util.*;
class GFG
{
 
// Function to find the sum of largest and
// smallest secondary polygons if possible
static void secondary_polygon(int Angle)
{
 
    // Count edges of primary polygon
    int edges_primary = 360/Angle;
 
    if (edges_primary >= 6)
    {
 
        // Calculate edges present in
        // the largest secondary polygon
        int edges_max_secondary = edges_primary / 2;
 
        System.out.println(edges_max_secondary + 3);
    }
    else
        System.out.println("Not Possible");
}
 
 
// Driver Code
public static void main(String[] args)
{
   
    // Given Exterior Angle
  int Angle = 45;
  secondary_polygon(Angle);
}
}
 
// This code is contributed by code_hunt.

Python3

# Python3 program for the above approach:
 
# Function to find the sum of largest and
# smallest secondary polygons if possible
def secondary_polygon(Angle):
 
    # Count edges of primary polygon
    edges_primary = 360//Angle
 
    if edges_primary >= 6:
 
        # Calculate edges present in
        # the largest secondary polygon
        edges_max_secondary = edges_primary // 2
 
        return edges_max_secondary + 3
 
    else:
        return "Not Possible"
 
 
# Driver Code
if __name__ == '__main__':
 
    # Given Exterior Angle
    Angle = 45
    print(secondary_polygon(Angle))

C#

// C# program for the above approach
using System;
class GFG {
 
  // Function to find the sum of largest and
  // smallest secondary polygons if possible
  static void secondary_polygon(int Angle)
  {
 
    // Count edges of primary polygon
    int edges_primary = 360 / Angle;
 
    if (edges_primary >= 6) {
 
      // Calculate edges present in
      // the largest secondary polygon
      int edges_max_secondary = edges_primary / 2;
 
      Console.WriteLine(edges_max_secondary + 3);
    }
    else
      Console.WriteLine("Not Possible");
  }
 
  // Driver Code
  public static void Main(string[] args)
  {
 
    // Given Exterior Angle
    int Angle = 45;
    secondary_polygon(Angle);
  }
}
 
// This code is contributed by ukasp.

Javascript

<script>
 
// JavaScript program for the above approach
 
// Function to find the sum of largest and
// smallest secondary polygons if possible
function secondary_polygon(Angle)
{
 
    // Count edges of primary polygon
    var edges_primary = 360/Angle;
 
    if (edges_primary >= 6)
    {
 
        // Calculate edges present in
        // the largest secondary polygon
        var edges_max_secondary = edges_primary / 2;
 
        document.write(edges_max_secondary + 3);
    }
    else
        document.write("Not Possible");
}
 
// Driver Code
 
//Given Exterior Angle
var Angle = 45;
secondary_polygon(Angle);
 
// This code is contributed by 29AjayKumar
 
</script>
Producción: 

7

 

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

Publicación traducida automáticamente

Artículo escrito por anmolsingh1899 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 *