魔方阵:
如3×3的魔方阵:
8 1 6
3 5 7
4 9 2
魔方阵的排列规律如下:
(1)将1放在第一行中间一列(不管多大的魔方阵都是这样);
(2)从2开始直到n×n止各数存放规则为;每一个数存放的行比前一个数的行数减1,列数加1,(如上图,2放在1的上一行的下一列);
(3)如果按上面规则确定的位置上已有数,就将数放在上一个数的下一行(也就是直接放下面。如上图,3的上一行的下一列已经放了1,所以4直接放在3的下面);
魔方阵的边长一定是奇数个数字
其实也可以把魔方阵近似成环形,更容易理解
下面是实现代码:
#include<stdio.h>
#include<assert.h>
#define Row 3//规定魔方阵的长度
void Magicsquare()
{
assert(Row%2!=0);//断言魔方阵的长度必须为奇数个数