Dados dos números enteros L y B que denotan el largo y el ancho de un rectángulo respectivamente. La tarea es calcular la suma del área de todos los cuadrados posibles que entran en el rectángulo.
Ejemplos :
Input: L = 4, B = 3 Output: 54 Input: L = 2, B = 5 Output: 26
La idea es observar el conteo de número de cuadrados en un rectángulo .
Ahora, el número de cuadrados del lado 1 será 12, ya que habrá dos casos, uno como cuadrados de 1 unidad de lado a lo largo de la horizontal (3) y el segundo caso como cuadrados de 1 unidad de lado a lo largo de la vertical (4). Eso nos da 3*4 = 12 cuadrados.
Cuando el lado es de 2 unidades, un caso será como cuadrados de lado de 2 unidades a lo largo de un solo lugar horizontalmente y el segundo caso como dos lugares verticalmente. Entonces el número de cuadrados = 6
Entonces podemos deducir que,
Número de cuadrados de tamaño 1*1 será L*B
Número de cuadrados de tamaño 2*2 será (L-1)(B-1)
Por lo tanto, el número de cuadrados con tamaño será:
Número de cuadrados de tamaño K = (L-K+1)*(B-K+1)
Por tanto, el área del número total de cuadrados de tamaño K será:
Área del número total de cuadrados de tamaño K = (L-K+1)*(B-K+1)*K*K
A continuación se muestra la implementación de la idea anterior:
C++
// CPP program to calculate the sum of area // of all possible squares that comes // inside the rectangle #include <bits/stdc++.h> using namespace std; // Function to calculate the sum of area // of all possible squares that comes // inside the rectangle int calculateAreaSum(int l, int b) { int size = 1; // Square with max size possible int maxSize = min(l,b); int totalArea = 0; for(int i=1; i <= maxSize; i++) { // calculate total square of a given size int totalSquares = (l-size+1)*(b-size+1); // calculate area of squares of a // particular size int area = totalSquares*size*size; // total area totalArea += area; // increment size size++; } return totalArea; } // Driver Code int main() { int l = 4, b = 3; cout<<calculateAreaSum(l,b); return 0; }
Java
// Java program to calculate the // sum of area of all possible // squares that comes inside // the rectangle class GFG { // Function to calculate the // sum of area of all possible // squares that comes inside // the rectangle static int calculateAreaSum(int l, int b) { int size = 1; // Square with max size possible int maxSize = Math.min(l, b); int totalArea = 0; for(int i = 1; i <= maxSize; i++) { // calculate total square // of a given size int totalSquares = (l - size + 1) * (b - size + 1); // calculate area of squares // of a particular size int area = totalSquares * size * size; // total area totalArea += area; // increment size size++; } return totalArea; } // Driver Code public static void main(String[] args) { int l = 4, b = 3; System.out.println(calculateAreaSum(l, b)); } } // This code is contributed // by ChitraNayal
Python 3
# Python 3 program to calculate # the sum of area of all possible # squares that comes inside # the rectangle # Function to calculate the # sum of area of all possible # squares that comes inside # the rectangle def calculateAreaSum(l, b): size = 1 # Square with max size possible maxSize = min(l, b) totalArea = 0 for i in range(1, maxSize + 1 ): # calculate total square # of a given size totalSquares = ((l - size + 1) * (b - size + 1)) # calculate area of squares # of a particular size area = (totalSquares * size * size) # total area totalArea += area # increment size size += 1 return totalArea # Driver Code if __name__ == "__main__": l = 4 b = 3 print(calculateAreaSum(l,b)) # This code is contributed # by ChitraNayal
C#
// C# program to calculate the // sum of area of all possible // squares that comes inside // the rectangle using System; class GFG { // Function to calculate the // sum of area of all possible // squares that comes inside // the rectangle static int calculateAreaSum(int l, int b) { int size = 1; // Square with max size possible int maxSize = Math.Min(l, b); int totalArea = 0; for(int i = 1; i <= maxSize; i++) { // calculate total square // of a given size int totalSquares = (l - size + 1) * (b - size + 1); // calculate area of squares // of a particular size int area = totalSquares * size * size; // total area totalArea += area; // increment size size++; } return totalArea; } // Driver Code public static void Main() { int l = 4, b = 3; Console.Write(calculateAreaSum(l,b)); } } // This code is contributed // by ChitraNayal
PHP
<?php // PHP program to calculate the // sum of area of all possible // squares that comes inside // the rectangle // Function to calculate the // sum of area of all possible // squares that comes inside // the rectangle function calculateAreaSum($l, $b) { $size = 1; // Square with max size possible $maxSize = min($l, $b); $totalArea = 0; for($i = 1; $i <= $maxSize; $i++) { // calculate total square // of a given size $totalSquares = ($l - $size + 1) * ($b - $size + 1); // calculate area of squares // of a particular size $area = $totalSquares * $size * $size; // total area $totalArea += $area; // increment size $size++; } return $totalArea; } // Driver Code $l = 4; $b = 3; echo calculateAreaSum($l,$b); // This code is contributed // by ChitraNayal ?>
Javascript
<script> // Javascript program to calculate the sum of area // of all possible squares that comes // inside the rectangle // Function to calculate the sum of area // of all possible squares that comes // inside the rectangle function calculateAreaSum(l, b) { var size = 1; // Square with max size possible var maxSize = Math.min(l,b); var totalArea = 0; for(var i=1; i <= maxSize; i++) { // calculate total square of a given size var totalSquares = (l-size+1)*(b-size+1); // calculate area of squares of a // particular size var area = totalSquares*size*size; // total area totalArea += area; // increment size size++; } return totalArea; } // Driver Code var l = 4, b = 3; document.write( calculateAreaSum(l,b)); // This code is contributed by noob2000. </script>
54
Complejidad del tiempo: O(min(l,b))
complejidad del espacio: O(1)
Publicación traducida automáticamente
Artículo escrito por sahilshelangia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA