top1编程
← 返回题目
题解

输出空心菱形

1 条题解

  • 0
    @ 2026-8-5 21:17:14

    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