文章預覽:
- 題目
- 算法
- 代碼
題目
算法
以前做過這個,那次是c語言寫的,一點一點處理一層一層完成,這次我換了一種語言用了另一種思想使用遞歸去寫,還是我們要先求出應該有多少層這個很容易,中間輸出部分我們算出每層有多少個,利用python乘法就可以做到,接下來使用遞歸一直找到只有一個符號的為止,也只有這層輸出一次,其余層都輸出倆次完成整個遞歸過程,代碼如下:
代碼
def output(s,count):s=count*' '+sprint(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)