Suma del área de todos los cuadrados posibles dentro de un rectángulo

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  K   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>
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *