Problem F: 幻方(二维数组)

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:6 Solved:4

Description

幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。如:
三阶幻方

现给出N阶奇数幻方的组成规律
把1放在第一行正中; 按以下规律排列剩下的n*n-1个数:
(1)每一个数放在前一个数的右上一格;
(2)如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;
(3)如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;
(4)如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;
(5)如果这个数所要放的格已经有数填入,处理方法同(4)。
 
现要求任意输入一个奇数n(n<100),输出n阶幻方的放法。

Input

n

Output

n阶幻方,n行n列,数之间以空格隔开

Sample Input Copy

3

Sample Output Copy

8 1 6
3 5 7
4 9 2

HINT

整数0,1,2,3,4,5,6,7,……可以被分为两类,一类是1,3,5,7,9,…叫奇数;另一类是0,2,4,6,8,10…叫偶数。
整数中,能被2整除的数是偶数,不能被2整除的数是奇数。

Source/Category