题目

从标准输入读入金字塔的层数 h,在控制台使用星号 * 和空格打印出居中对齐的字符金字塔。

输入格式:一行输入一个正整数 h,表示金字塔高度。

输出格式:输出 h 行字符图案,构成居中金字塔。

数据范围与约定:1 ≤ h ≤ 30。

思路与算法

1. 字符串乘法乘方
Python 支持字符串重复操作:" " * (h - i) 生成前导空格,"*" * (2 * i - 1) 生成奇数个星号。

2. 居中规律
第 i 行(i 从 1 到 h)的前导空格数为 h - i,星号数为 2 * i - 1。

完整程序

n = int(input())
a = list(map(int, input().split()))

# 插入排序:将当前元素逐个插入到左侧已有序的序列中
for i in range(1, n):
    key = a[i]
    j = i - 1
    while j >= 0 and a[j] > key:
        a[j + 1] = a[j]
        j -= 1
    a[j + 1] = key

print(" ".join(map(str, a)))

运行示例

输入:

4

输出:

*
**
***
****