这与3*3是一样道理的。
算法如下:
1。将1放在第一行的中间列。
2。如果当前数是在第一行,则将下一数放在下一列的最后一行。
3。如果当前数是在最后一列,则将下一数放在上一行的第一列。
4。如果当前数是在第一行也在最后一列,则将下一数放在当前数的下方。
5。如果当前数的右上方是空,则将下一个数放在右上方。
6。如果当前数的右上方有数,则将下一个数放在当前数的下方。
3*3 5*5 7*7 都是这样的。
我相信(2n+1)*(2n+1)也是同样的道理。(n是自然数)
各位有空的话不妨证明一下,别忘了将结果告诉我。。。
具体的排列如下:
3*3 (1--9) 行列和为15
8 1 6
3 5 7
8 4 2
5*5 (1--25) 行列和为65
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
7*7 (1--49) 行列和为175
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20