Dado un polígono regular de N lados, la tarea es encontrar el polígono de máximo lado que se puede inscribir dentro del polígono dado uniendo vértices no adyacentes. Imprime -1 , si no existe tal polígono.
Ejemplos:
Entrada: N = 8
Salida: 4
Explicación:
Como máximo, se puede inscribir un polígono de 4 lados dentro del polígono de 8 lados dado, como se muestra a continuación:Entrada: N = 3
Salida: -1
Planteamiento: La idea es observar el hecho de que un polígono regular se puede inscribir dentro de otro polígono regular de N lados si N es par. Siga los pasos a continuación para resolver el problema:
- Si N es par, entonces el polígono inscrito con los lados máximos se puede formar uniendo los vértices no adyacentes. Por lo tanto, escriba N/2 como la respuesta requerida.
- De lo contrario, imprima -1 ya que ningún polígono regular se puede inscribir dentro de un polígono de lados impares.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to find the maximum // sided polygon that can be inscribed int MaximumSides(int n) { // Base Case if (n < 4) return -1; // Return n/2 if n is even // Otherwise, return -1 return n % 2 == 0 ? n / 2 : -1; } // Driver Code int main() { // Given N int N = 8; // Function Call cout << MaximumSides(N); return 0; }
Java
// Java program for the // above approach import java.util.*; class GFG{ // Function to find the // maximum sided polygon // that can be inscribed static int MaximumSides(int n) { // Base Case if (n < 4) return -1; // Return n/2 if n is // even Otherwise, return -1 return n % 2 == 0 ? n / 2 : -1; } // Driver Code public static void main(String[] args) { // Given N int N = 8; // Function Call System.out.print(MaximumSides(N)); } } // This code is contributed by shikhasingrajput
Python3
# Python3 program for the above approach # Function to find the maximum sided # polygon that can be inscribed def MaximumSides(n): # Base Case if (n < 4): return -1 # Return n/2 if n is even # Otherwise, return -1 if n % 2 == 0: return n // 2 return -1 # Driver Code if __name__ == '__main__': # Given N N = 8 # Function Call print(MaximumSides(N)) # This code is contributed by mohit kumar 29
C#
// C# program for the // above approach using System; class GFG{ // Function to find the // maximum sided polygon // that can be inscribed static int MaximumSides(int n) { // Base Case if (n < 4) return -1; // Return n/2 if n is // even Otherwise, return -1 return n % 2 == 0 ? n / 2 : -1; } // Driver Code public static void Main(String[] args) { // Given N int N = 8; // Function Call Console.Write(MaximumSides(N)); } } // This code is contributed by shikhasingrajput
Javascript
<script> // Javascript program for the // above approach // Function to find the // maximum sided polygon // that can be inscribed function MaximumSides( n) { // Base Case if (n < 4) return -1; // Return n/2 if n is // even Otherwise, return -1 return n % 2 == 0 ? n / 2 : -1; } // Driver Code // Given N let N = 8; // Function Call document.write(MaximumSides(N)); // This code is contributed by shikhasingrajput </script>
Producción:
4
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por aditiwebd108 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA