题解
输出空心矩形
1 条题解
-
0
解题思路
用双重循环:外层控制行(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