Número de formas en que N se puede dividir en cuatro partes para construir un rectángulo

Dado un número entero N , la tarea es dividir el número en cuatro partes de modo que las partes divididas se puedan usar para construir un rectángulo pero no un cuadrado. Halla cuantos numeros de vias hay para que se pueda dividir el numero cumpliendo la condicion.
Ejemplos: 
 

Entrada: N = 8 
Salida: 1
Entrada: N = 10 
Salida:
 

Enfoque: como el número debe dividirse de tal manera que el rectángulo se forme a partir de las cuatro partes divididas, entonces si el número es impar , entonces el número de formas será cero , ya que el perímetro de un rectángulo siempre es par
Ahora, si n es par , entonces solo hay (n – 2) / 4 formas de dividir el número, por ejemplo, 
si 8 tiene que dividirse en cuatro partes, entonces solo hay (8 – 2) / 4 = 1 forma, es decir, [ 1, 1, 3, 3] , no hay otra manera. Es porque solo puede tomar lados de longitud < = n/2 – 1 para formar un rectángulo válido y de esos n/2 – 1Rectángulos cuentan dividir de nuevo por 2 para evitar el doble conteo.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the
// required number of ways
int cntWays(int n)
{
    if (n % 2 == 1) {
        return 0;
    }
    else {
        return (n - 2) / 4;
    }
}
 
// Driver code
int main()
{
    int n = 18;
 
    cout << cntWays(n);
 
    return 0;
}

Java

// Java implementation of the approach
class GFG
{
     
    // Function to return the
    // required number of ways
    static int cntWays(int n)
    {
        if (n % 2 == 1)
        {
            return 0;
        }
        else
        {
            return (n - 2) / 4;
        }
    }
     
    // Driver code
    public static void main (String[] args)
    {
        int n = 18;
     
        System.out.println(cntWays(n));
 
    }
}
 
// This code is contributed by AnkitRai01

Python3

# Python 3 implementation of the approach
 
# Function to return the
# required number of ways
def cntWays(n) :
    if n % 2 == 1 :
        return 0
    else:
        return (n - 2) // 4
         
# Driver code
n = 18
print(cntWays(n))
 
# This code is contributed by
# divyamohan123

C#

// C# implementation of the approach
using System;
     
class GFG
{
     
    // Function to return the
    // required number of ways
    static int cntWays(int n)
    {
        if (n % 2 == 1)
        {
            return 0;
        }
        else
        {
            return (n - 2) / 4;
        }
    }
     
    // Driver code
    public static void Main (String[] args)
    {
        int n = 18;
     
        Console.WriteLine(cntWays(n));
    }
}
 
// This code is contributed by 29AjayKumar

Javascript

<script>
 
// javascript implementation of the approach
     
// Function to return the
// required number of ways
function cntWays(n)
{
    if (n % 2 == 1)
    {
        return 0;
    }
    else
    {
        return (n - 2) / 4;
    }
}
 
// Driver code
 
var n = 18;
 
document.write(cntWays(n));
 
// This code contributed by shikhasingrajput
 
</script>
Producción: 

4

 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)
 

Publicación traducida automáticamente

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