【发布时间】:2015-06-06 20:01:55
【问题描述】:
好的,我必须做一个像这样以螺旋方式填充数组的程序
1 2 5 10
4 3 6 11
9 8 7 12
16 15 14 13
它不像从中心开始的正常螺旋,所以我遇到了一些麻烦。存储数据的位置应该像
array[0] [0]
array[0] [1]
array[1] [1]
array[1] [0]
array[0] [2]
array[1] [2]
array[2] [2]
array[2] [1]
array[2] [0]
array[0] [3]
array[1] [3]
array[2] [3]
array[3] [3]
array[3] [2]
array[3] [1]
array[3] [0]
等等,但我想不出一个合适的循环来帮助我填满它,所以我不得不向你们寻求帮助
【问题讨论】:
-
你的程序输出什么?请显示代码,以及您认为哪里出错了。
-
你需要遍历它的右边缘和下边缘,首先是一个 1x1 的正方形,然后是一个 2x2 的正方形,依此类推,维护一个带有当前数字的变量来插入。
-
您已经通过写下索引序列完成了第一步。这绝对可以帮助您确定序列遵循的规则。你也已经把它分成了块,这很好。但是,您的第一个块应该分成单行 (array[0] [0]) 作为第一块,其余 3 行 (array[0][1], array[1][1], array[ 1][0]) 作为第二个块。那么你应该已经看到了块之间和块内的结构。
-
将你的第一步分成两步,第一步是
[0][0],你应该会看到一个清晰的模式。