我在二维数组上有这个完全正常的循环.
for(int i = 0; i我想通过这个二维数组,从中间开始.例如,如果两个维度的数组长度都为100,我希望它像这样重复:
array[50][50] //middle of array array[49][50] //x-1 array[50][49] //y-1 array[51][50] //x+1 array[50][51] //y+1 array[48][50] //x-2 array[49][49] //x-1 and y-1 array[50][48] //y-2 array[51][49] //x+1 and y-1 array[52][50] //x+2 array[51][51] //x+1 and y+1 array[50][52] //y+2 array[49][51] //x-1 and y+1 etc.我花了好几个小时找到一种有效的方法并在互联网上找到解决方案,但我还没有找到一个好的答案.谁知道怎么做?
1> luk2302..:这还不会给你任何java代码,而是一个如何处理问题的想法.
在一张纸上绘制一个尺寸小得多的数组网格,并绘制每个单元格中应该到达单元格的数字.
[ ][ ][ ][ ][ ] [ ][ ][ ][ ][ ] [ ][ ][1][ ][ ] [ ][ ][ ][ ][ ] [ ][ ][ ][ ][ ] [ ][ ][ ][ ][ ] [ ][ ][3][ ][ ] [ ][2][1][4][ ] [ ][ ][5][ ][ ] [ ][ ][ ][ ][ ] [ ][ ][8][ ][ ] [ ][7][3][9][ ] [6][2][1][4][A] [ ][D][5][B][ ] [ ][ ][C][ ][ ] [ ][F][8][G][ ] [E][7][3][9][H] [6][2][1][4][A] [L][D][5][B][I] [ ][K][C][J][ ] [M][F][8][G][N] [E][7][3][9][H] [6][2][1][4][A] [L][D][5][B][I] [P][K][C][J][O]"蜗牛"模式清晰可见.您始终填充先前填充的单元格的外部邻居单元格.
忽略字段的外边界,第一次迭代填充
1个细胞 - 然后
4个细胞
8个细胞
12个细胞
... +4个细胞在循环方面,你不应该循环使用
(i,j)
哪个都反映数组中的索引.而是在round
s上循环然后在该特定回合中打印相应的单元格.在圆形X
你开始在现场arrayLength / 2 - X
.