top1编程
← 返回题目
题解

输出矩形

1 条题解

  • 0
    @ 2026-8-5 0:22:41

    解题思路

    要求输出一个 m 行 n 列、由"*"组成的矩形。这是最基础的双重循环练习:

    • 外层循环控制行数:i 从 1 到 m,一共输出 m 行;
    • 内层循环控制每行的星号个数:j 从 1 到 n,每行输出 n 个"*";
    • 内层循环结束后换行,进入下一行。

    代码逻辑非常直观:外层循环每执行一次,内层循环就把一整行的星号输出完。注意换行 cout << endl 要放在内层循环的外面(外层循环体里),这样才是"每行输出完再换行";如果放在内层循环里面,每个星号后都会换行,矩形就变成一列了。

    验证样例:m=4,n=5,输出 4 行,每行 5 个星号。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int m, n;           // m:行数;n:列数
        cin >> m >> n;      // 读入行数和列数
        for (int i = 1; i <= m; i++) {   // 外层循环:控制行数
            for (int j = 1; j <= n; j++) {   // 内层循环:控制列数
                cout << "*";    // 每行输出 n 个星号
            }
            cout << endl;   // 一行结束,换行
        }
        return 0;
    }
    

    复杂度分析

    总共输出 m×n 个星号:外层循环执行 m 次,内层循环每次执行 n 次,所以时间复杂度是 O(m×n)。这里 m 是行数、n 是列数,总工作量等于矩形的星号总数。空间上只用 m、n、i、j 几个变量,空间复杂度 O(1)。

    • 1