top1编程
← 返回题目
题解

【入门】字符图形7-星号菱形

1 条题解

  • 0
    @ 2026-7-30 0:57:22

    解题思路

    输入的 n 表示菱形中心到边的层数。先输出上半部分和中间一行:第 i 行有 n-i 个空格和 2*i+1 个星号;再从 n-1 倒着输出下半部分。

    参考代码

    // 读取题目给出的数据。
    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        // 输出上半部分和中间一行
        for (int i = 0; i <= n; i++) {
            for (int j = 0; j < n - i; j++) {
                cout << " ";
            }
            for (int j = 0; j < 2 * i + 1; j++) {
                cout << "*";
            }
            cout << endl;
        }
    
        // 输出下半部分
        for (int i = n - 1; i >= 0; i--) {
            for (int j = 0; j < n - i; j++) {
                cout << " ";
            }
            for (int j = 0; j < 2 * i + 1; j++) {
                cout << "*";
            }
            cout << endl;
        }
        return 0;
    }
    

    复杂度分析

    图形有 O(n) 行,每行最多输出 O(n) 个字符,时间复杂度为 O(n²),空间复杂度为 O(1)。

    • 1