印刷方形螺旋图案背后的逻辑(无阵列)

时间:2017-12-13 03:43:44

标签: java algorithm loops math

我想制作方形螺旋图案。 我之前已经用数组制作了它。 我只是没有得到它的模式。 如何打印螺旋内部?

输入= 5

#####
....#
###.#
#...#
#####

输入= 11

###########
..........#
#########.#
#.......#.#
#.#####.#.#
#.#...#.#.#
#.#.###.#.#
#.#.....#.#
#.#######.#
#.........#
###########

1 个答案:

答案 0 :(得分:1)

尝试从不同角度看待问题。如果你从侧面看这个模式:(输入11)

#########.# (1)
#.......#.# (2)
#.#####.#.# (3)
#.#...#.#.# (4)
#.#.#.#.#.# (5)
#.#.#.#.#.# (6)
#.#.###.#.# (7)
#.#.....#.# (8)
#.#######.# (9)
#.........# (10)
########### (11)

现在,这种模式的下半部分很容易画出(第6-11行)。 请注意,如果再次绘制同一行,但这次颠倒了你的欲望输出非常相似 - 当上面5行的diff矩阵

00000000010 (diff for line 1 and 11)
00000000100 (diff for line 2 and 10)
00000001000 (diff for line 3 and 9)
00000010000 (diff for line 4 and 8)
00000100000 (diff for line 5 and 7)

所以你只需要在数组的上半部分循环并在那些地方交换符号 - 再次,这个矩阵很容易模式。