使用 Python 檢查是否有任何(只有一個彩色單元格的)正方形可以被分成兩等份


假設,我們得到一個大小為 n 的正方形。n 大小的正方形進一步被分成 n2 個更小的正方形。較小的正方形是單位大小,其中一個正方形用唯一的顏色著色。

現在,如果我們將較大的正方形分成兩等份,我們必須以這樣一種方式切割它,即切割線與那個唯一著色的較小正方形沒有任何公共點。我們還必須考慮這樣一個事實,即新切割的兩塊是彼此的映象。因此,我們必須找出在給定條件下是否可以這樣切割正方形。我們有 n 的值以及著色正方形在較大正方形中的位置。

因此,如果輸入類似於 size = 50,colored_row_pos = 25,colored_col_pos = 25,則輸出將為“無法切割”。

為了解決這個問題,我們將遵循以下步驟:

  • middle := size /2 的向下取整值
  • 如果 (middle 等於 colored_row_pos 或 middle 等於 colored_row_pos - 1) 且 (middle 等於 colored_col_pos 或 middle 等於 colored_col_pos - 1),則
    • 返回 False
  • 否則,
    • 返回 True

讓我們看看下面的實現以獲得更好的理解:

示例

 線上演示

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)

輸入

50, 25, 25

輸出

Cutting is not possible

更新於: 2020-12-30

91 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.