235. C++·【16-2·难】奇数阶幻方
中等
C++
📋 题目描述
给出奇数 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)。
请登录后提交代码