传统题 1000ms 128MiB

d086: 奇数幻方

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

说明

把整数11n2n^2nn 为奇数)排成一个 n×nn \times n 方阵,使方阵中的每一行、每一列以及对角线上的数之和都相同。这样的方阵(行列数相等的矩阵称为方阵)称为 nn 阶奇数幻方。

研究发现,nn 阶奇数幻方可以按下列方法生成:

  • 把数1填在第一行的正中间(a[1,n div 2 +1]),然后用一个循环依次填入数22n2n^2。一边填数以便找下一个数应该在的位置,填数按照下面的规律进行:

  • 如果数k 填在第i 行第j 列的格子中(a[i,j]),那么一般情况下,数k+1应填在它的左上方,即a[i-1,j-1]位置上;但是,如果左上方无格子(越界了,即i-1为0或j-1为0),那么就做如下处理:若i-1为0,那么就填在a[n,j-1];若j-1为0,那么就填在a[i-1,n]。如果找到的格子中已填过数了,那么数k+1改填在第k 个数的正下方(a[i+1,j])。

输入格式

一行nn,不需要判错n50n \leqslant 50

输出格式

输出幻方数据(共 nn 行)

每行 nn 个整数,每个整数之间用空格间隔开。

3
6 1 8
7 5 3
2 9 4

【2024入门训练7:排序、结构体与二维数组】

未认领
状态
已结束
题目
11
开始时间
2024-7-15 14:00
截止时间
2024-7-22 23:59
可延期
24 小时