题解
输出矩形
1 条题解
-
0
解题思路
要求输出一个 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