题解
输出空心菱形
1 条题解
-
0
P4276 输出空心菱形(入门)
解题思路
这道题不需要输入,只要把空心菱形的 5 行图案原样输出。规律是:上面尖、下面尖,中间一行左右各 1 个星号,中间夹 3 个空格。
把每一行拆开看(_ 表示空格):
- 第 1 行:__*(2 空格 + 1 星)
- 第 2 行:**(1 空格 + 星 + 空格 + 星)
- 第 3 行:___(星 + 3 空格 + 星)
- 第 4 行:**(和第 2 行对称)
- 第 5 行:__*(和第 1 行对称)
图案是上下对称的,画的时候可以先画上面三行,再照着倒过来画下面两行。
注意:
- 行首的空格、星星之间的空格一个都不能少,数的时候要一格一格数。
- 中间那行是星号 + 3 个空格 + 星号,这是"空心"的关键,可别少打一个空格。
- 因为不读输入,程序每次运行结果都一样,不存在边界情况,照抄即可。
参考代码
// 用途:按题目给出的图案输出一个5行的空心菱形 #include <iostream> using namespace std; int main() { cout << " *" << endl; cout << " * *" << endl; cout << "* *" << endl; cout << " * *" << endl; cout << " *" << endl; return 0; }复杂度分析
固定输出 5 行字符串,输出量恒定,时间复杂度 O(1),额外空间 O(1)。如果菱形更大(比如 2n-1 行),用双重循环按规律输出会更省事,复杂度会变成 O(n²);但本题只有 5 行,直接逐行输出最简单可靠。
- 1