"""
该程序实现：输出一个等腰三角形
by Thomas Lee on 2019-10-23
1. 构建一个字典数据结构，存储对应行数需要打印多少颗星，
   如：第1行打印1星，第2行打印3星，第3行打印5星....
2. 要实现上述字典的对应关系，奇数应该在2倍的给定行数中产生。
3. 每行输出的空格数的计算。

"""

n = int(input('请输入行数：'))
ky = [x+1 for x in range(n)]
vl = [x for x in range(n*2) if x % 2 > 0]  #在行数的2倍自然数中，才能产生对应数量的奇数
dic = {}
for i in range(n):
    dic[ky[i]] = vl[i]  #数据字典赋值，列表索引获取列表值后，再作为字典的key; 同理，列表索引获取值后再做为字典的value.

for m in range(n):
    sp = n-(m+1)  #每行空格数的计算逻辑
    print(' '*sp, end='')
    t = int(dic[m+1])  #获取字典中存储的每行对应的星号数
    print('*'*t)










