top1编程
← 返回题目
题解

【基础】回形方阵

1 条题解

  • 0
    @ 2026-7-31 9:33:41

    解题思路

    输出回形方阵(同心正方形)。

    矩阵大小为 2n+1,每个位置的值 = n - 到四条边的最短距离。

    参考代码

    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main() {
        int n; cin >> n;
        int m = 2 * n + 1;
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < m; j++) {
                // 取到四条边的最短距离
                int v = n;
                if (i < v) v = i;
                if (j < v) v = j;
                if (m - 1 - i < v) v = m - 1 - i;
                if (m - 1 - j < v) v = m - 1 - j;
                cout << setw(2) << (n - v);
            }
            cout << endl;
        }
        return 0;
    }
    

    O(N²) 时间,O(1) 空间

    • 1