打印沙漏——中國慕課——數據結構課程—— 自測第一題

要說的全在代碼裏面了,很詳細,應該能看懂額

'''中國慕課——數據結構課程—— 自測第一題打印沙漏
	思路:現將輸入的數字和字符分開放到兩個變量中;
	利用18 = [5,3,1,3,5]+1 構造出需要的列表;
	再利用for循環打印出來
'''

#輸入如 17 * 用空格分割給到a
a = input('').split()
num ,string= int(a[0]),a[1]
#構造list1來裝沙漏的每一行
list1 = [1]
# n 用來記錄當前還剩下多少
n = num-1
# k 沙漏的第一層和第三層是3個
k = 3
while n>0:
	n = n -2*k
	if n<0:
		break
	#分別在列表的前面和後面插入要打印的沙漏個數
	list1.insert(0,k)
	list1.append(k)
	k+=2

#for循環打印前一般的沙漏,注意空格
for i in range(0,len(list1)//2+1):
	print(' '*i+list1[i]*string)

#將剩下的一半放在列表list2中;並打印
list2 = list1[len(list1)//2+1:]
for j in range(0,len(list2)):
	print((len(list2)-j-1)*' '+list2[j]*string)

#打印剩餘的個數
print(num-sum(list1))



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章