#700. 幻方芯片
幻方芯片
问题描述
工厂研制出一块“幻方加密芯片”,启动该芯片需要一枚 的奇阶幻方作为动态密钥。幻方是一个 的矩阵( 为奇数),其每行、每列与对角线上的数字之和都相同。
将数字 依次填入矩阵构建幻方的具体规则如下:
- 数字 填在第一行的正中间;
- 记上一个填入的数字位置为 ,下一个数字原则上填在其右上方(即第 行,第 列);
- 特殊情况处理规则:
- 规则 a:如果上一个数字位于右上角(即第 行第 列),或者其右上方已有数字,则下一个数字填在该数字的正下方(即第 行,第 列);
- 规则 b:否则,若上一个数字在第一行(),则下一个数字填在最后一行,列数为右一列(即第 行,第 列);
- 规则 c:否则,若上一个数字在最后一列(),则下一个数字填在第一列,行数为上一行(即第 行,第 列)。
输入格式
第一行输入一个正整数 ,表示要构造的幻方大小为 。
输出格式
输出共 行,每行包含 个正整数,数与数之间用空格隔开,表示构造完成的幻方矩阵。
样例输入 1
3
样例输出 1
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
评测数据规模
对于所有评测数据:
- 输入为整数