Problem I: 奇数阶幻方(魔方)构造

Problem I: 奇数阶幻方(魔方)构造

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 182  Solved: 110
[Submit] [Status] [Web Board] [Creator:]

Description

幻方,有时又称魔方,由一组排放在正方形中的整数组成,其每行、每列以及两条对角线上的数之和均相等。通常幻方由从到的连续整数组成。

Siamese方法(Kraitchik 1942年,pp. 148-149)是构造奇数阶幻方的一种方法,说明如下:

1)把1放置在第一行的中间

2)从2开始直到n×n的各数依次放在右上方格中

3)当右上方格出界的时候,则由另一边则回绕。例如1在第1行,则2应放在最下一行,列数同样加1

4)如果按上面规则确定的位置上已有数,或上一个数位于最右上方时,则把下一个数放在上一个数的下面 按照以上步骤直到填写完所有方格。

输入: 自然数n(1<=n<=20,n是奇数)

输出: n行,每行n个数,每个数占4个字符位置。   提示:使用  printf("%4d", x) 来打印

Input

Sample Input

5

Sample Output

  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