Todos os desafios
Difícil 0 resolvidos 0% de aceitação

Corte um Retângulo em Quadrados

Encontre o menor número de cortes retos necessários para produzir apenas quadrados.

A cada movimento, escolha um retângulo e corte-o completamente, paralelo a um dos lados, formando dois retângulos com lados de comprimento inteiro positivo. Continue até que cada pedaço seja um quadrado. Os quadrados podem ter tamanhos diferentes. Conte os cortes, não os pedaços.

Implemente rectangle_cutting(height, width).

Entrada

height: A altura do retângulo inicial.

width: A largura do retângulo inicial.

Saída

Retorne o número mínimo de cortes.

Restrições

1 ≤ height, width ≤ 500. Rotacionar não altera a resposta.

Exemplos

Exemplo 1
Entrada:
width = 3
height = 2

Saída esperada:
expected = 2
Entrada:
long long width = 3;
long long height = 2;

Saída esperada:
long long expected = 2;
Entrada:
long width = 3;
long height = 2;

Saída esperada:
long expected = 2;

Explicação

Corte um quadrado de 2 × 2, restando um retângulo de 2 × 1. Mais um corte divide o restante em dois quadrados unitários.

Exemplo 2
Entrada:
width = 4
height = 4

Saída esperada:
expected = 0
Entrada:
long long width = 4;
long long height = 4;

Saída esperada:
long long expected = 0;
Entrada:
long width = 4;
long height = 4;

Saída esperada:
long expected = 0;

Explicação

O retângulo inicial já é um quadrado.

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.