#1243. [GESP样题 四级] 填幻方

[GESP样题 四级] 填幻方

题目描述

在一个 N×NN\times N 的空方格中,按下面的规则填入 11 到 N2N^2,得到每一行、每一列和两条对角线上的数之和都相同的幻方。

  1. 把 11 填在首行的正中间。
  2. 填完一个数后,从它的位置出发,尝试把下一个数填在右上方的格子里。越过上边界会回到最后一行,越过右边界会回到第一列。
  3. 如果目标格已经有数,就改填在上一个数的正下方。向下越界时回到第一行。

重复上述步骤直至填满。

输入格式

一行一个奇数 NN。

输出格式

按行输出生成的幻方,每行的数用空格隔开。

3
8 1 6
3 5 7
4 9 2

数据范围

3≤N≤213\le N\le 21,且 NN 为奇数。

来源

洛谷 B3940 · CCF GESP C++ 四级。