Todos los desafíos
Difícil 0 resueltos 0% de aceptación

Corta un rectángulo en cuadrados

Encuentra el menor número de cortes rectos necesarios para obtener solo cuadrados.

En cada movimiento, elige un rectángulo y córtalo completamente, en línea recta y paralelo a uno de sus lados, dividiéndolo en dos rectángulos con lados de longitud entera positiva. Continúa hasta que cada pieza sea un cuadrado. Los cuadrados pueden ser de diferentes tamaños. Cuenta los cortes, no las piezas.

Implementa rectangle_cutting(height, width).

Entrada

height: La altura inicial del rectángulo.

width: El ancho inicial del rectángulo.

Salida

Devuelve el número mínimo de cortes.

Restricciones

1 ≤ height, width ≤ 500. Rotar el rectángulo no cambia la respuesta.

Ejemplos

Ejemplo 1
Entrada:
width = 3
height = 2

Salida esperada:
expected = 2
Entrada:
long long width = 3;
long long height = 2;

Salida esperada:
long long expected = 2;
Entrada:
long width = 3;
long height = 2;

Salida esperada:
long expected = 2;

Explicación

Corta un cuadrado de 2 × 2, dejando un rectángulo de 2 × 1. Un corte más divide el resto en dos cuadrados de 1 unidad.

Ejemplo 2
Entrada:
width = 4
height = 4

Salida esperada:
expected = 0
Entrada:
long long width = 4;
long long height = 4;

Salida esperada:
long long expected = 0;
Entrada:
long width = 4;
long height = 4;

Salida esperada:
long expected = 0;

Explicación

El rectángulo inicial ya es un cuadrado.

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.