文章预览:
- 题目
- 算法
- 代码
题目
算法
以前做过这个,那次是c语言写的,一点一点处理一层一层完成,这次我换了一种语言用了另一种思想使用递归去写,还是我们要先求出应该有多少层这个很容易,中间输出部分我们算出每层有多少个,利用python乘法就可以做到,接下来使用递归一直找到只有一个符号的为止,也只有这层输出一次,其余层都输出俩次完成整个递归过程,代码如下:
代码
def output(s,count):
s=count*' '+s
print(s)
def solution(fuhao,count,zong):
output(fuhao*count,(zong-count)//2)
if count!=1:
solution(fuhao,count-2,zong)
output(fuhao*count,(zong-count)//2)
count_s,fu=input().split()
count_s=int(count_s)
n=0
while 2*n*n-1<=count_s:
n+=1;
n=n-1
solution(fu,2*n-1,2*n-1)
print(count_s-2*n*n+1)