Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem có bất kỳ hình vuông nào (với một ô màu) có thể được chia thành hai phần bằng nhau trong Python hay không

Giả sử, chúng ta được cung cấp một hình vuông có kích thước là n. Hình vuông có kích thước n được chia thành n2 hình vuông nhỏ hơn. Các hình vuông nhỏ hơn có kích thước đơn vị và một trong các hình vuông được tô bằng màu duy nhất.

Bây giờ nếu chúng ta cắt hình vuông lớn hơn thành hai phần bằng nhau, chúng ta phải cắt nó sao cho đường cắt không có điểm chung nào với hình vuông nhỏ có màu duy nhất đó. Chúng ta cũng phải xem xét thực tế rằng hai mảnh mới cắt là hình ảnh phản chiếu của nhau. Vì vậy, chúng ta phải tìm xem nếu cắt một hình vuông như vậy có thể được với các điều kiện. Chúng ta có giá trị của n và vị trí của hình vuông được tô màu trong hình vuông lớn hơn.

Vì vậy, nếu đầu vào là size =50, color_row_pos =25, color_col_pos =25, thì đầu ra sẽ là "Không thể cắt".

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • middle:=giá trị sàn của kích thước / 2
  • nếu (giữa giống với color_row_pos hoặc giữa giống với color_row_pos - 1) và (giữa giống với color_col_pos hoặc giữa giống với color_col_pos - 1), thì
    • trả về Sai
  • nếu không,
    • trả về True

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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