1 条题解

  • 0
    @ 2087-5-21 11:40:02

    练9.1 字符菱形

    解题思路

    以中间一行为中心,上下两侧逐渐减少字符。第 i 行距中心 k=|i-2|,输出 k+1 个空格与 5-2k 个字符。

    正确性说明

    五行字符数为 1、3、5、3、1,中心列相同,形成所需菱形。

    易错点

    本站样例最宽行前也有一个空格,按样例整体缩进一列。

    复杂度

    本题输入规模固定,时间 O(1),额外空间 O(1)。

    参考代码(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        char c;
        cin >> c;
        for (int i = 0; i < 5; i++) {
            int k = abs(i - 2);
            cout << string(k + 1, ' ') << string(5 - 2 * k, c) << "\n";
        }
        return 0;
    }
    
    • 1