Dado un tablero de ajedrez N x N. La tarea es contar rectángulos distintos del tablero de ajedrez. Por ejemplo, si la entrada es 8, la salida debería ser 36.
Ejemplos:
Input: N = 4 Output: 10 Input: N = 6 Output: 21
Enfoque:
supongamos que N = 8, es decir, se da un tablero de ajedrez de 8 x 8, por lo que los diferentes rectángulos que se pueden formar son:
1 x 1, 1 x 2, 1 x 3, 1 x 4, 1 x 5, 1 x 6, 1 x 7, 1 x 8 = 8 2 x 2, 2 x 3, 2 x 4, 2 x 5, 2 x 6, 2 x 7, 2 x 8 = 7 3 x 3, 3 x 4, 3 x 5, 3 x 6, 2 x 7, 3 x 8 = 6 4 x 4, 4 x 5, 4 x 6, 4 x 7, 4 x 8 = 5 5 x 5, 5 x 6, 5 x 7, 5 x 8 = 4 6 x 6, 6 x 7, 6 x 8 = 3 7 x 7, 7 x 8 = 2 8 x 8 = 1
Entonces, el total de rectángulos únicos formados = 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 36, que es la suma de los primeros 8 números naturales. Entonces, en general, los distintos rectángulos que se pueden formar en un tablero de ajedrez N x N son:
Sum of the first N natural numbers = N*(N+1)/2 = 8*(8+1)/2 = 36
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code to count distinct rectangle in a chessboard #include <bits/stdc++.h> using namespace std; // Function to return the count // of distinct rectangles int count(int N) { int a = 0; a = (N * (N + 1)) / 2; return a; } // Driver Code int main() { int N = 4; cout<<count(N); } // This code is contributed by nidhi16bcs2007
Java
// Java program to count unique rectangles in a chessboard class Rectangle { // Function to count distinct rectangles static int count(int N) { int a = 0; a = (N * (N + 1)) / 2; return a; } // Driver Code public static void main(String args[]) { int n = 4; System.out.print(count(n)); } }
Python3
# Python code to count distinct rectangle in a chessboard # Function to return the count # of distinct rectangles def count(N): a = 0; a = (N * (N + 1)) / 2; return int(a); # Driver Code N = 4; print(count(N)); # This code has been contributed by 29AjayKumar
C#
// C# program to count unique rectangles in a chessboard using System; class Rectangle { // Function to count distinct rectangles static int count(int N) { int a = 0; a = (N * (N + 1)) / 2; return a; } // Driver Code public static void Main() { int n = 4; Console.Write(count(n)); } } // This code is contributed by AnkitRai01
Javascript
// Javascript program to count unique rectangles in a chessboard // Function to count distinct rectangles function count(N) { var a = 0; a = (N * (N + 1)) / 2; return a; } // Driver Code var n = 4; document.write(count(n)); // This code is contributed by bunnyram19.
10
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por apurva_sharma244 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA