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