题目内容:
打印一个n层(1<n<20)金字塔,金字塔由“+”构成,塔尖是1个“+”,下一层是3个“+”,居中排列,以此类推。
注意:每一行的+号之后均无空格,最后一行没有空格。
输入格式:
一个正整数n(1<n<20)
输出格式:
一个由+号构成的n层金字塔
输入样例:
3
输出样例:
+
+++
+++++
My answer
思路1:看似简单。。却让人头疼,需要注意的是所有+号后面都没空格,按最原始的思路,找出规律,以3为例,第一行是(3-1)=2个空格+1个’+’,第二行(3-2)=1个空格+3个’+’,第三行(3-3)=0个空格+5个’+’…
n = int(input())
for i in range(1, n + 1):
s = n-i
print(' ' * s + '+' * (i*2-1))
思路2:如果知道str的方法center()和rstrip()就高大上很多
n = int(input())
for i in range(n):
print(('+'*(i*2+1)).center(n*2-1).rstrip(' '))
思路3:老师的答案,倒着来
n = int(input())
for i in range(n, 0, -1):
print(' ' * (i - 1) + '+' * (2 * (n - i) + 1))