1 条题解
-
0
【例63.2】 回形方阵
解题思路
图边长为2n+1,中心下标(n,n)。位置(i,j)的数值为max(|i-n|,|j-n|),即到中心的切比雪夫距离。
正确性说明
依题目给出的对应关系逐项处理,位置与原输入保持明确对应。每一步完成当前项的全部贡献,结束后得到所有位置或字符的目标结果。
易错点
中心为0,外圈为n;数字宽度2。
复杂度
时间O(n²),空间O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; for (int i = 0; i <= 2 * n; i++) { for (int j = 0; j <= 2 * n; j++) cout << setw(2) << max(abs(i - n), abs(j - n)); cout << "\n"; } return 0; }
- 1