Tous les défis
Difficile 0 résolus 0 % de réussite

Découper un rectangle en carrés

Trouvez le nombre minimal de découpes droites nécessaires pour obtenir uniquement des carrés.

À chaque étape, choisissez un rectangle et coupez-le entièrement, parallèlement à l'un de ses côtés, de façon à obtenir deux rectangles dont les côtés sont des entiers strictement positifs. Continuez jusqu'à ce que chaque morceau soit un carré. Les carrés peuvent être de tailles différentes. Comptez le nombre de découpes, pas le nombre de morceaux.

Implémentez rectangle_cutting(height, width).

Entrée

height : La hauteur du rectangle de départ.

width : La largeur du rectangle de départ.

Sortie

Retournez le nombre minimal de découpes.

Contraintes

1 ≤ height, width ≤ 500. La rotation ne change pas la réponse.

Exemples

Exemple 1
Entrée :
width = 3
height = 2

Sortie attendue :
expected = 2
Entrée :
long long width = 3;
long long height = 2;

Sortie attendue :
long long expected = 2;
Entrée :
long width = 3;
long height = 2;

Sortie attendue :
long expected = 2;

Explication

Découpez un carré de 2 × 2, il reste un rectangle de 2 × 1. Une découpe supplémentaire sépare le reste en deux carrés unité.

Exemple 2
Entrée :
width = 4
height = 4

Sortie attendue :
expected = 0
Entrée :
long long width = 4;
long long height = 4;

Sortie attendue :
long long expected = 0;
Entrée :
long width = 4;
long height = 4;

Sortie attendue :
long expected = 0;

Explication

Le rectangle de départ est déjà un carré.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.