Cuadrados mínimos para cubrir un rectángulo

Dado un rectángulo de largo l y ancho b , necesitamos encontrar el número mínimo de cuadrados que pueden cubrir la superficie del rectángulo, dado que cada cuadrado tiene un lado de largo a . Se permite cubrir la superficie más grande que el rectángulo, pero el rectángulo debe cubrirse. No está permitido romper el cuadrado.
Ejemplos: 
 

Input : 1 2 3
Output :1
We have a 3x3 square and we need
to make a rectangle of size 1x2.
So we need only 1 square to cover the
rectangle.

Input : 11 23 14
Output :2

La única forma de llenar el rectángulo de manera óptima es colocar cada cuadrado de manera que quede paralelo a los lados del rectángulo. Entonces solo necesitamos encontrar el número de cuadrados para cubrir completamente el largo y el ancho del rectángulo. 
La longitud del rectángulo es l , y si la longitud del lado del cuadrado es una l dividida , entonces debe haber l/a cuadrados para cubrir la longitud total de l . Si l no es divisible por a , debemos sumar 1 a l/a para redondearlo hacia abajo. Para ello, podemos utilizar la función ceil , ya que ceil(x) devuelve el menor número entero superior o igual a x. 
Podemos hacer lo mismo con el ancho del rectángulo y tomar el número de cuadrados en el ancho como ceil(b/a)
Entonces, el número total de cuadrados = ceil(m/a) * ceil(n/a) .
 

C++

// C++ program to find the minimum number
// of squares to cover the surface of the
// rectangle with given dimensions
#include <bits/stdc++.h>
using namespace std;
int squares(int l, int b, int a)
{
    // function to count
    // the number of squares that can
    // cover the surface of the rectangle
    return ceil(l / (double)a) * ceil(b / (double)a);
}
 
// Driver code
int main()
{
    int l = 11, b = 23, a = 14;
    cout << squares(l, b, a) << endl;
    return 0;
}

Java

// Java program to find the minimum number
// of squares to cover the surface of the
// rectangle with given dimensions
class GFG
{
static int squares(int l, int b, int a)
{
     
// function to count
// the number of squares that can
// cover the surface of the rectangle
return (int)(Math.ceil(l / (double)a) *
             Math.ceil(b / (double)a));
}
 
// Driver code
public static void main(String[] args)
{
    int l = 11, b = 23, a = 14;
    System.out.println(squares(l, b, a));
}
}
 
// This code is contributed by ChitraNayal

Python 3

# Python3 program to find the minimum number
# of squares to cover the surface of the
# rectangle with given dimensions
import math
 
def squares(l, b, a):
     
    # function to count
    # the number of squares that can
    # cover the surface of the rectangle
    return math.ceil(l / a) * math.ceil(b / a)
 
# Driver code
if __name__ == "__main__":
    l = 11
    b = 23
    a = 14
    print(squares(l, b, a))
 
# This code is contributed
# by ChitraNayal

C#

// C# program to find the minimum number
// of squares to cover the surface of the
// rectangle with given dimensions
using System;
 
class GFG
{
static int squares(int l, int b, int a)
{
     
// function to count
// the number of squares that can
// cover the surface of the rectangle
return (int)(Math.Ceiling(l / (double)a) *
             Math.Ceiling(b / (double)a));
}
 
// Driver code
public static void Main()
{
    int l = 11, b = 23, a = 14;
    Console.Write(squares(l, b, a));
}
}
 
// This code is contributed by ChitraNayal

PHP

<?php
// PHP program to find the minimum number
// of squares to cover the surface of the
// rectangle with given dimensions
 
function squares($l, $b, $a)
{
    // function to count
    // the number of squares that can
    // cover the surface of the rectangle
    return ceil($l / (double)$a) *
           ceil($b / (double)$a);
}
 
// Driver code
$l = 11;
$b = 23;
$a = 14;
echo squares($l, $b, $a);
 
// This code is contributed
// by ChitraNayal
?>

Javascript

<script>
 
// javascript program to find the minimum number
// of squares to cover the surface of the
// rectangle with given dimensions
 
function squares(l , b , a)
{
     
    // function to count
    // the number of squares that can
    // cover the surface of the rectangle
    return parseInt(Math.ceil(l / a) *
                 Math.ceil(b / a));
}
 
// Driver code
 
var l = 11, b = 23, a = 14;
document.write(squares(l, b, a));
 
// This code is contributed by Amit Katiyar
 
</script>
Producción: 

2

 

Complejidad del 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

Deja una respuesta

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