问题描述
输入一个 3 ~20之间的正整数 n,输出 n 行 "" 号, 第一行一个 "" 号, 第二行三个 "" 号,第三行五个 "" 号,以此类推。图形要求左右对称,输出一个由 "*" 组成的图形。
* *** ***** ******* *********
分析:
· 每一行的星星数,是有规律的。
1 1 1*2 - 1
2 3 2*2 - 1
3 5 3*2 - 1
4 7 ...
5 9
6 11
*
***
*****
*******
*********
***********
· 每一行星星的前面,都是有空格的。
1 5
2 4
3 3
4 2
5 1
6 0
*
***
*****
*******
*********
***********
最终代码
n=int(input())
#星号数量
c1=1
#空格数量
c2=n-1
#枚举每一行
for i in range(n):
#输出空格
for j in range(c2):
print("",end="")
#输出星号
for j in range(c1):
print("*",end="")
print(" ")
c1+=2
c2-=1