假设我们有一个大小为 n 的正方形。n个大小的正方形被进一步分成n2个更小的正方形。较小的正方形具有单位大小,其中一个正方形用独特的颜色着色。
现在,如果我们将较大的正方形切割成两个相等的部分,我们必须以这样的方式切割它,以便切割线与那个独特颜色的小正方形没有任何共同点。我们还必须考虑这样一个事实,即新切割的两块是彼此的镜像。因此,我们必须找出在条件下是否可以切割这样的正方形。我们有 n 的值和彩色方块在较大方块中的位置。
因此,如果输入类似于 size = 50、colored_row_pos = 25、colored_col_pos = 25,那么输出将是“无法切割”。
为了解决这个问题,我们将按照以下步骤操作 -
中间 := 尺寸 /2 的底值
如果 (middle 与 colour_row_pos 相同或 middle 与 colour_row_pos - 1 相同) 并且 (middle 与 colour_col_pos 相同或 middle 与 colour_col_pos - 1 相同) ,则
返回错误
否则,
返回真
让我们看看以下实现以获得更好的理解 -
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