#L0237. 奇阶幻方填数
奇阶幻方填数
题目背景
幻方是一种古老的数学游戏。在一个 的方阵中填入 到 的所有正整数,使得每一行、每一列以及两条对角线上的数字之和都相等,这样的方阵就叫做幻方。当 为奇数时,存在一种系统化的构造方法。
题目描述
给定一个奇数 ,请按照以下规则构造一个 的幻方:
- 将 填入第一行的正中央位置。
- 从刚填入数字的位置出发,尝试向右上方移动一格(即行号减一、列号加一)。如果向上越界则环绕到最后一行,如果向右越界则环绕到第一列。若目标位置尚未填数,则填入下一个数字。
- 如果第 2 步的目标位置已被占用,则从上一个数字的位置向正下方移动一行(行号加一,列号不变;若向下越界则环绕到第一行)。该位置一定为空,填入下一个数字。
- 重复步骤 2 和 3,直到所有格子填满。
输入格式
输入一个正奇数 ,保证 。
输出格式
输出 行,每行 个空格分隔的正整数,表示构造好的幻方。
样例
38 1 6
3 5 7
4 9 2
</p>
难度
普及-
通过率
—
尝试
0
已通过
0
- ID
- 965
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者