top1编程
← 返回题目
题解

【入门】斜角IV

1 条题解

  • 0
    @ 2026-7-31 4:44:06

    解题思路

    这道题要求输出一个 N 行 N 列的方阵,数字沿主对角线对称分布。

    观察 N=5 的输出:

      5  4  3  2  1
      4  5  4  3  2
      3  4  5  4  3
      2  3  4  5  4
      1  2  3  4  5
    

    规律是:主对角线(i=j)上的值都是 n,向两边每远离一步就减 1。

    参考代码

    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                // 计算 i 和 j 的差值,取绝对值
                // 主对角线上差值为 0,越远离差值越大
                int d = i - j;
                if (d < 0) d = -d;
                cout << setw(3) << (n - d);
            }
            cout << endl;
        }
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(N²)
    • 空间复杂度:O(1)
    • 1