神奇的幻方
测试数据来自 system/1343
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【问题描述】
幻方是一种很神奇的 𝑁×𝑁 矩阵:它由数字 1,2,3,……,𝑁×𝑁 构成,且每行、每列 及两条对角线上的数字之和都相同。
当 𝑁 为奇数时,我们可以通过以下方法构建一个幻方:
首先将 1 写在第一行的中间。
之后,按如下方式从小到大依次填写每个数 𝐾(𝐾 = 2,3,…,𝑁×𝑁) :
1. 若 (𝐾 −1) 在第一行但不在最后一列,则将 𝐾 填在最后一行,(𝐾 −1) 所在列 的右一列;
2. 若 (𝐾 −1) 在最后一列但不在第一行,则将 𝐾 填在第一列,(𝐾 −1) 所在行的上 一行;
3. 若 (𝐾 −1) 在第一行最后一列,则将 𝐾 填在 (𝐾 −1) 的正下方;
4. 若 (𝐾 −1) 既不在第一行,也不在最后一列,如果 (𝐾 −1) 的右上方还未填数, 则将 K 填在(𝐾 −1)的右上方,否则将 𝐾 填在 (𝐾 −1) 的正下方。
现给定 𝑁,请按上述方法构造 𝑁×𝑁 的幻方。
【输入格式】
输入文件只有一行,包含一个整数 𝑁,即幻方的大小。
【输出格式】
包含 𝑁 行,每行 𝑁 个整数,即按上述方法构造出的 𝑁×𝑁 的幻方。相邻 两个整数之间用单个空格隔开。
【输入输出样例】
Input
3
Output
8 1 6
3 5 7
4 9 2
【数据限制】
\(100\%\) 的数据满足:\(1 ≤ N ≤ 39\) 且 \(N\) 是奇数。
【来源】
Mr.he