7
使用L形的Tromino将2 ^ N x 2 ^ N网格平铺
当初次向学生讲解数学归纳的证明技术时,一个常见的示例是将2个N ×2 N的网格与L形的Tromino砖砌在一起的问题,从而将一个预定的网格空间留空。(N是一些非负整数。) 如果您还不知道,我将交给您查看证明。有很多讨论它的资源。 您的任务是编写一个程序,该程序使用N的值以及要保留为空的网格空间的坐标,并输出所生成的Tromino平铺网格的ASCII表示形式。 角色O将填充空白区域,并且我们的Tromino旋转4次将如下所示: | +- | -+ -+ | +- | (是的,它可以是含糊其+与去-和|某些安排,但没关系。) 您的程序必须在N = 0(对于1×1网格)下工作,至少N = 8(对于256×256网格)。将给出x和y值,它们是的坐标O: x是水平轴。x = 1是左侧网格边缘,x = 2 N是右侧网格边缘。 y是垂直轴。y = 1是顶部网格边缘,y = 2 N是底部网格边缘。 x和y都始终在[1,2 N ] 范围内。 因此,对于给定的N,x和y,您的程序必须输出2 N ×2 N的网格,该网格完全用L形的三角骨平铺,但x,y网格坐标为O。 例子 如果N = 0,则x和y必须都为1。 O 如果N = 1,x = 1,y …