Все задачи
Сложно Решено: 0 Процент решений: 0%

Разрезание прямоугольника на квадраты

Найдите минимальное количество прямых разрезов, чтобы получить только квадраты.

За один ход выберите один прямоугольник и разрежьте его полностью поперёк, параллельно одной из сторон, чтобы получить два прямоугольника с положительными целыми длинами сторон. Продолжайте, пока все части не станут квадратами. Квадраты могут быть разного размера. Считайте количество разрезов, а не количество частей.

Реализуйте функцию rectangle_cutting(height, width).

Входные данные

height: Высота исходного прямоугольника.

width: Ширина исходного прямоугольника.

Выходные данные

Верните минимальное количество разрезов.

Ограничения

1 ≤ height, width ≤ 500. Поворот прямоугольника не влияет на ответ.

Примеры

Пример 1
Ввод:
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. Ещё один разрез разделит остаток на два единичных квадрата.

Пример 2
Ввод:
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. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.