3490: [GESP样题 四级] 填幻方

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:2

题目描述

在一个 N×N 的正方形网格中,每个格子分别填上从 1 到 N×N 的正整数,使得正方形中任一行、任一列及对角线的几个数之和都相等,则这种正方形图案就称为“幻方”。我国古代称为“河图”、“洛书”,又叫“纵横图”。
当 N 为奇数时,有如下方便的填写方法:
在第一行的中央位置填上数字 1。接着,尝试将下一个数字填在前一个数字的右上方(即向上移动一行,向右移动一列)。如果该位置超出边界,则循环到另一边(例如,若超过顶部则回到底部)。
如果按照步骤 2 无法找到未填充的位置,则直接将下一个数字填在前一个数字的下方。重复步骤 2 和 3,直到所有格子都被填满。编写程序,实现上述规则,生成一个 N×N 的幻方。

输入

  • 输入为一个正奇数 N,满足 3N21

输出

  • 输出 N 行,每行包含 N 个由空格分隔的正整数,表示生成的 N×N 幻方。

样例输入 复制

3

样例输出 复制

8 1 6
3 5 7
4 9 2