Tất cả thử thách
Khó 0 đã giải Tỷ lệ chấp nhận 0%

Cắt Hình Chữ Nhật Thành Các Hình Vuông

Tìm số lần cắt thẳng ít nhất để chỉ còn lại các hình vuông.

Ở mỗi lượt, chọn một hình chữ nhật và cắt dọc theo một đường thẳng song song với một cạnh, chia nó thành hai hình chữ nhật có chiều dài các cạnh là số nguyên dương. Tiếp tục cho đến khi mọi mảnh đều là hình vuông. Các hình vuông có thể có kích thước khác nhau. Đếm số lần cắt, không phải số mảnh.

Cài đặt hàm rectangle_cutting(height, width).

Đầu vào

height: Chiều cao của hình chữ nhật ban đầu.

width: Chiều rộng của hình chữ nhật ban đầu.

Đầu ra

Trả về số lần cắt ít nhất.

Ràng buộc

1 ≤ height, width ≤ 500. Xoay hình không làm thay đổi đáp án.

Ví dụ

Ví dụ 1
Đầu vào:
width = 3
height = 2

Kết quả mong đợi:
expected = 2
Đầu vào:
long long width = 3;
long long height = 2;

Kết quả mong đợi:
long long expected = 2;
Đầu vào:
long width = 3;
long height = 2;

Kết quả mong đợi:
long expected = 2;

Giải thích

Cắt ra một hình vuông 2 × 2, còn lại một hình chữ nhật 2 × 1. Thêm một lần cắt nữa chia phần còn lại thành hai hình vuông đơn vị.

Ví dụ 2
Đầu vào:
width = 4
height = 4

Kết quả mong đợi:
expected = 0
Đầu vào:
long long width = 4;
long long height = 4;

Kết quả mong đợi:
long long expected = 0;
Đầu vào:
long width = 4;
long height = 4;

Kết quả mong đợi:
long expected = 0;

Giải thích

Hình chữ nhật ban đầu đã là hình vuông.

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.