top1编程
← 返回题目
题解

【入门】有趣的数字图形III

1 条题解

  • 0
    @ 2026-7-31 9:38:46

    解题思路

    输出 N×N 方阵,数字沿右下方向逐渐递增,左上区域为空格。

    规律:第 i 行从第 n-1-i 列开始有数字,值为行号+列号-n+2。

    参考代码

    #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 - 1 - i; j++) cout << "     ";
            // 数字区域,值 = 行号+列号-n+2
            for (int j = n - 1 - i; j < n; j++) {
                cout << setw(5) << (i + j - n + 2);
            }
            if (i < n - 1) cout << endl;
        }
        return 0;
    }
    

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

    • 1