top1编程
← 返回题目
题解

数字三角形

1 条题解

  • 0
    @ 2026-8-5 1:22:40

    解题思路

    输出一个 n 行的数字三角形:第 1 行是 1 个 1,第 2 行是 2 个 2,第 3 行是 3 个 3……第 n 行是 n 个 n。

    比如样例 n=5:

    1
    22
    333
    4444
    55555
    

    规律很明显:第 i 行就输出 i 个 i。

    用两层循环:

    1. 外层循环 i 从 1 到 n,代表第几行;
    2. 内层循环输出 i 次 i(第 i 行有 i 个数);
    3. 每行结束换行。

    参考代码

    // P4433 数字三角形:第 i 行输出 i 个 i
    #include <iostream>
    using namespace std;
    
    int main() {
        int n; // 行数
        cin >> n;
    
        for (int i = 1; i <= n; i++) {   // 第 1 行到第 n 行
            for (int j = 1; j <= i; j++) // 第 i 行输出 i 个 i
                cout << i;
            cout << endl;                // 每行结束换行
        }
        return 0;
    }
    

    复杂度分析

    • 第 i 行要输出 i 个数字,总输出量是 1 + 2 + 3 + ... + n = n(n+1)/2,所以时间复杂度是 O(n²)。
    • 只用了一小把变量,空间复杂度是 O(1)。
    • 1