检查任何正方形(带有一个彩色单元格)是否可以在 Python 中分成两个相等的部分

假设我们有一个大小为 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

猜你喜欢