235. C++·【16-2·难】奇数阶幻方

中等 C++ 2s 256MB
通过 0/0

📋 题目描述
给出奇数 N(1≤N≤25),构造 N 阶奇数幻方(每行/列/对角线和相等,使用数字 1..N²)。 使用经典 Siamese(罗伯法):1 放在第一行正中间;下一个数放当前位置的右上方; 若超出边界则环绕;若已被占则放当前位置的正下方。 输出 N 行,每行 N 个整数。
📥 输入描述
一行一个奇数 N。
📤 输出描述
N 行幻方矩阵。
输入样例
3
输出样例
8 1 6
3 5 7
4 9 2
提示:记当前 (r,c)=(0, N/2)。每步先写值,再尝试 (r-1,c+1),越界则模 N,被占则 (r+1,c)。

登录后提交代码

讨论区 0
登录后参与讨论

还没有讨论,来发表第一条吧!