题解 | #递归画图#
递归画图
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)