Dados dos números enteros N y M , donde N líneas rectas son paralelas al eje X y M líneas rectas son paralelas al eje Y , la tarea es calcular el número de rectángulos que se pueden formar con estas líneas.
Ejemplos:
Entrada: N = 3, M = 6
Salida: 45
Explicación:
Hay un total de 45 rectángulos posibles con 3 líneas paralelas al eje x y 6 líneas paralelas al eje y.
Entrada: N = 2, M = 4
Salida: 6
Explicación:
Hay un total de 6 rectángulos posibles con 2 líneas paralelas al eje x y 4 líneas paralelas al eje y.
Planteamiento:
Para resolver el problema mencionado anteriormente, debemos observar que un rectángulo está formado por 4 líneas rectas en las que los lados opuestos son paralelos y el ángulo entre dos lados es de 90. Por lo tanto, para cada rectángulo, dos lados deben ser paralelos a El eje X y los otros dos lados deben ser paralelos al eje Y.
- Número de formas de seleccionar dos líneas paralelas al eje X = N C 2 y Número de formas de seleccionar dos líneas paralelas al eje Y = M C 2 .
- Así que el número total de rectángulos = N C 2 * M C 2 = [ N * (N – 1) / 2 ] * [ M * (M – 1) / 2 ]
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to count number of // rectangles formed by N lines // parallel to X axis M lines // parallel to Y axis #include <bits/stdc++.h> using namespace std; // Function to calculate // number of rectangles int count_rectangles(int N, int M) { // Total number of ways to // select two lines // parallel to X axis int p_x = (N * (N - 1)) / 2; // Total number of ways // to select two lines // parallel to Y axis int p_y = (M * (M - 1)) / 2; // Total number of rectangles return p_x * p_y; } // Driver Program int main() { int N = 3; int M = 6; cout << count_rectangles(N, M); }
Java
// Java Program to count number of // rectangles formed by N lines // parallel to X axis M lines // parallel to Y axis class GFG{ // Function to calculate // number of rectangles static int count_rectangles(int N, int M) { // Total number of ways to // select two lines // parallel to X axis int p_x = (N * (N - 1)) / 2; // Total number of ways // to select two lines // parallel to Y axis int p_y = (M * (M - 1)) / 2; // Total number of rectangles return p_x * p_y; } // Driver Program public static void main(String[] args) { int N = 3; int M = 6; System.out.print(count_rectangles(N, M)); } } // This code is contributed by sapnasingh4991
Python3
# Python3 program to count number of rectangles # formed by N lines parallel to X axis # and M lines parallel to Y axis def count_rectangles(N, M): # Total number of ways to select # two lines parallel to X axis p_x = (N * (N - 1)) // 2 # Total number of ways to select # two lines parallel to Y axis p_y = (M * (M - 1)) // 2 # Total number of rectangles return p_x * p_y # Driver code N = 3 M = 6 print(count_rectangles(N, M)) # This code is contributed by himanshu77
C#
// C# Program to count number of // rectangles formed by N lines // parallel to X axis M lines // parallel to Y axis using System; class GFG{ // Function to calculate // number of rectangles static int count_rectangles(int N, int M) { // Total number of ways to // select two lines // parallel to X axis int p_x = (N * (N - 1)) / 2; // Total number of ways // to select two lines // parallel to Y axis int p_y = (M * (M - 1)) / 2; // Total number of rectangles return p_x * p_y; } // Driver Program public static void Main() { int N = 3; int M = 6; Console.Write(count_rectangles(N, M)); } } // This code is contributed by Code_mech
Javascript
<script> // JavaScript Program to count number of // rectangles formed by N lines // parallel to X axis M lines // parallel to Y axis // Function to calculate // number of rectangles function count_rectangles(N, M) { // Total number of ways to // select two lines // parallel to X axis let p_x = (N * (N - 1)) / 2; // Total number of ways // to select two lines // parallel to Y axis let p_y = (M * (M - 1)) / 2; // Total number of rectangles return p_x * p_y; } // Driver Code let N = 3; let M = 6; document.write(count_rectangles(N, M)); </script>
45
Complejidad de tiempo: O(1)
Publicación traducida automáticamente
Artículo escrito por Mayank Rana 1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA