Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra cắt hình vuông (có một ô màu) thành hai phần đối xứng trong Python

Cho hình vuông kích thước size (chia thành size^2 ô đơn vị). Một ô được tô màu. Cắt hình vuông thành hai phần đối xứng (hình ảnh gương) sao cho đường cắt không đi qua ô màu. Xác định có thể cắt hay không.

Đường cắt đối xứng phải đi qua tâm hình vuông. Nếu ô màu nằm chính giữa (gần tâm) thì không thể cắt.

Ví dụ: size=50, ô màu tại (25,25) → tâm là 25 → ô màu nằm trên đường cắt → "Cutting is not possible".

Giải thuật

  • Tính middle = size // 2.
  • Nếu hàng của ô màu bằng middle hoặc middle-1 VÀ cột của ô màu bằng middle hoặc middle-1 → không cắt được.

Mã ví dụ

def solve(size, colored_row_pos, colored_col_pos):
    middle = size // 2
    if (middle == colored_row_pos or middle == colored_row_pos - 1) and (middle == colored_col_pos or middle == colored_col_pos - 1):
        print("Cutting is not possible")
    else:
        print("Cutting is possible")

size = 50
colored_row_pos, colored_col_pos = 25, 25
solve(size, colored_row_pos, colored_col_pos)

Đầu vào

50, 25, 25

Đầu ra

Cutting is not possible