题解
输出爱心
1 条题解
-
0
P4215 输出爱心(入门)
解题思路
这道题不需要输入,只需要把题目图里的爱心一行一行原样"抄"到输出里。
把爱心想象成用积木摆图案:每一行用几个空格、几个星号都是定死的。比如第 1 行是 4 个星号、3 个空格、再 4 个星号;第 4 行前面有 1 个空格;第 8 行前面有 5 个空格……这些空格一个都不能多、不能少,少了一个爱心就会变形。
小技巧:
- 每行用 cout << "..." << endl; 输出,endl 表示换行。
- 数空格时要特别仔细,眼睛容易看花,可以像数格子一样一格一格数过去。
- 因为没有任何输入,程序一运行就直接输出 8 行图案。
边界情况:题目没有输入,所以不用考虑输入为 0、为 1 之类的特殊情况,只要把 8 行字符原样输出就满分。
参考代码
// 用途:按题目给出的爱心图案,一行一行原样输出8行字符 #include <iostream> using namespace std; int main() { cout << "**** ****" << endl; cout << "* * * *" << endl; cout << "* * *" << endl; cout << " * *" << endl; cout << " * *" << endl; cout << " * *" << endl; cout << " * *" << endl; cout << " *" << endl; return 0; }复杂度分析
程序只做固定 8 次输出,每次输出一行固定长度的字符串,和任何输入数据都无关,时间复杂度 O(1),额外空间 O(1)。就算把同样的题改成 1000 行的图案,只要用循环输出,也是 O(行数) 的时间;但本题只有 8 行,直接逐行抄写最简单。
- 1