题目:
n阶幻方阵,也叫魔方阵,是指将1~n*n个正整数排列成n x n阶方阵,n为奇数。
它具有这样的性质:
每行,每列,以及对角线之和都是相等的,都是n(n*n+1)/2。
分析:
用二维数组来存放次方阵。
1. 将1放在第一行的中间位置。
2. 连续的数字从坐下向右上的方向顺序放置,即下一个数的位置在当前位置的右上方。
3. 将此方阵看成环形,规律如下:
i = (i - 1 +n)%n; //向上一行
j = (j + 1)% n; //向下一列
4. 当放完n个数时,即有一条对角线放满了,下一个位置要转向下一行。
其实,有很多个解,改变初始位置和下一个数的位置,就可以得到不同的解。
记得3阶的有一句顺口溜:”二四为肩,六八为足,左七右三,戴九履一,中间为五。“
代码:
幻方阵(魔方阵)
原文:http://blog.csdn.net/crazy1235/article/details/19773427