題目描述:
本題要求你寫個程式把給定的符号列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印
*****
***
*
***
*****
所謂“沙漏形狀”,是指每行輸出奇數個符号;各行符号中心對齊;相鄰兩行符号數差2;符号數先從大到小順序遞減到1,再從小到大順序遞增;首尾符号數相等。
給定任意N個符号,不一定能正好組成一個沙漏。要求列印出的沙漏能用掉盡可能多的符号。
輸入格式:
輸入在一行給出1個正整數N(≤1000)和一個符号,中間以空格分隔。
輸出格式:
首先列印出由給定符号組成的最大的沙漏形狀,最後在一行中輸出剩下沒用掉的符号數。
輸入樣例:
19 *
輸出樣例:
*****
***
*
***
*****
2
----------------------------------------------------------答題區----------------------------------------------------------
有個坑點,列印出的沙漏的右邊是沒有空格的。
import math
s=input().split()
total=int(s[0])
flag=s[1]
total_yuan=total
total+=1
total//=2
s=math.floor(math.sqrt(total))
sheng=s
s=s*2-1
sheng=(total_yuan-2*sheng**2+1)
n=0
while(s>1):
print(" "*n+flag*s)
n+=1
s-=2
print(" "*n+flag*s)
while(n>0):
n-=1
s+=2
print(" "*n+flag*s)
print(sheng)
維護了一個PAT測試點問題的共享文檔,歡迎大家把遇到的問題寫在上面。
一起寫文檔:https://yiqixie.com/d/home/fcACe6xZ2aroPxFQrQZ05Cw32
github連結:https://github.com/Makerdd/PAT-yiji