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