使用 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP