Polígono con lados máximos que se pueden inscribir en un polígono regular de N lados

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:

  1. 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.
  2. 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

Deja una respuesta

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