幻方阵又称魔方阵,是将1~n×n的整数放置在1个n×n的方阵中(n的值为奇数),且保证每行、每列及主对角线、副对角线上的数值之和相等。
本题要求实现n-幻方阵(阶数最大为15),n的值从键盘读入。 N为奇数时,N幻方构造算法为:
(1) 将1放在第一行中间一列;
(2)从2开始直到n×n为止各数依次按下列规则存放:按右上方向行走,即每一个数存放的行比前一个数的行数减1,列数加1。
(3) 如果行列范围超出矩阵范围,则回绕。
(4) 如果按上面规则确定的位置上已有数,则将其放在上一个数的下面。
输入格式:
输入一个正奇数n。
输出格式:
按照样例的格式输出n级幻方阵,每列占4个字符,右对齐。
输入样例:
5
结尾无空行
输出样例:
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
#include<stdio.h>
int main()
{
int n,x,y,X,Y;
scanf("%d",&n);
int a[n][n];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)