За один ход выберите один прямоугольник и разрежьте его полностью поперёк, параллельно одной из сторон, чтобы получить два прямоугольника с положительными целыми длинами сторон. Продолжайте, пока все части не станут квадратами. Квадраты могут быть разного размера. Считайте количество разрезов, а не количество частей.
Реализуйте функцию rectangle_cutting(height, width).
Входные данные
height: Высота исходного прямоугольника.
width: Ширина исходного прямоугольника.
Выходные данные
Верните минимальное количество разрезов.
Ограничения
1 ≤ height, width ≤ 500. Поворот прямоугольника не влияет на ответ.
Примеры
Ввод:
width = 3
height = 2
Ожидаемый вывод:
expected = 2
Ввод:
long long width = 3;
long long height = 2;
Ожидаемый вывод:
long long expected = 2;
Ввод:
long width = 3;
long height = 2;
Ожидаемый вывод:
long expected = 2;
Пояснение
Отрежьте квадрат 2 × 2, останется прямоугольник 2 × 1. Ещё один разрез разделит остаток на два единичных квадрата.
Ввод:
width = 4
height = 4
Ожидаемый вывод:
expected = 0
Ввод:
long long width = 4;
long long height = 4;
Ожидаемый вывод:
long long expected = 0;
Ввод:
long width = 4;
long height = 4;
Ожидаемый вывод:
long expected = 0;
Пояснение
Исходный прямоугольник уже является квадратом.
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.