top1编程
← 返回题目
题解

输出空心矩形

1 条题解

  • 0
    @ 2026-8-4 14:03:51

    解题思路

    用双重循环:外层控制行(m 行),内层控制列(n 列)。判断当前位置:

    • 在第一行、最后一行、第一列、最后一列 → 输出 *
    • 其他位置 → 输出空格

    这样四周是星号、中间空心的矩形就出来了。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int m, n;
        cin >> m >> n;
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                // 第一行/最后一行 或 第一列/最后一列 是*,否则空格
                if (i == 1 || i == m || j == 1 || j == n) cout << "*";
                else cout << " ";
            }
            cout << endl;
        }
        return 0;
    }
    

    复杂度分析

    双重循环 m×n 次,m、n 最大 200,时间复杂度 O(m×n),额外空间复杂度 O(1)。

    • 1