题解
输出长方形
1 条题解
-
0
解题思路
这道题又是一道纯输出题:用
*画一个长方形。看输出样例,一共 4 行,每行 7 个*,就像 4 行 7 列的小星星方阵,每一行都一模一样。先想清楚怎么输出一行:输出 7 个星号可以一条
cout语句搞定——把 7 个*连在一起写进双引号里,cout << "*******" << endl;,末尾的endl负责换行。一共有 4 行,那就把同样的语句按顺序写 4 遍。要点有两个:
- 每行星号之间没有空格,要紧紧挨在一起;
- 每行结尾都要换行,否则 4 行会连成一条 28 个星号的长线,就不是长方形了。
顺便想一想:如果这个长方形要画 100 行,把语句复制 100 遍就太麻烦了,以后学到循环
for用一条语句就能搞定。不过本题固定只有 4 行,直接写 4 条输出语句是最简单、最不容易错的做法。这就是“固定图案用直接输出”的思路。参考代码
#include <iostream> using namespace std; int main() { // 第1行:输出7个星号并换行 cout << "*******" << endl; // 第2行:输出7个星号并换行 cout << "*******" << endl; // 第3行:输出7个星号并换行 cout << "*******" << endl; // 第4行:输出7个星号并换行 cout << "*******" << endl; return 0; }复杂度分析
程序没有输入,只输出固定的 4 行、共 28 个字符,输出的内容量是固定的,不随任何数据变化。所以时间复杂度是 O(1)。
空间上只保存了 7 个星号组成的字符串常量,空间复杂度也是 O(1)。
如果把它推广成 m 行 n 列的长方形,输出的字符总数是 m×n 个,时间复杂度就是 O(m×n);但本题固定 4 行 7 列,所以是 O(1)。
- 1