题解 | #递归画图#
递归画图
https://www.nowcoder.com/practice/d01d668861f84471872ff0e9c958cae2
# 参数从小到大的递归,假设共n行,从第1行打印至第n行
# 先通过计算得到第n行的‘#’数和‘ ’数
# 分两种情况计算‘#’数和‘ ’数
# 1. [1:(n+1)/2]行
# 2. [(n+1)/2:n]行
# 这里只有7行,所以我直接找规律(狗头
# 递归结束的条件就是打印完全部行数,return即可
def fprint(n):
if n <= 4:
print(' '*(5-n) + '#'*(2*n-1) + ' '*(5-n) )
return fprint(n+1)
elif n <= 7:
print(' '*(n-3) + '#'*(2*(8-n)-1)+ ' '*(n-3))
return fprint(n+1)
else :
return
fprint(1)

