Problema
Mostra originale (inglese)Ad ogni mossa, scegli un rettangolo e taglialo completamente, parallelamente a un lato, ottenendo così due rettangoli con lati di lunghezza intera positiva. Continua finché ogni pezzo non è un quadrato. I quadrati possono avere dimensioni diverse. Conta i tagli, non i pezzi.
Implementa rectangle_cutting(height, width).
Input
height: L'altezza iniziale del rettangolo.
width: La larghezza iniziale del rettangolo.
Output
Restituisci il numero minimo di tagli.
Vincoli
1 ≤ height, width ≤ 500. Ruotare il rettangolo non cambia la risposta.
Esempi
Input:
width = 3
height = 2
Output atteso:
expected = 2
Input:
long long width = 3;
long long height = 2;
Output atteso:
long long expected = 2;
Input:
long width = 3;
long height = 2;
Output atteso:
long expected = 2;
Spiegazione
Taglia un quadrato 2 × 2, lasciando un rettangolo 2 × 1. Un altro taglio divide il resto in due quadrati unitari.
Input:
width = 4
height = 4
Output atteso:
expected = 0
Input:
long long width = 4;
long long height = 4;
Output atteso:
long long expected = 0;
Input:
long width = 4;
long height = 4;
Output atteso:
long expected = 0;
Spiegazione
Il rettangolo iniziale è già un quadrato.
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.