本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個「*」,要求按下列格式列印
*****
****
********
所謂「沙漏形狀」,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。
給定任意n個符號,不一定能正好組成乙個沙漏。要求列印出的沙漏能用掉盡可能多的符號。
輸入格式:
輸入在一行給出1個正整數n(≤1000)和乙個符號,中間以空格分隔。
輸出格式:
首先列印出由給定符號組成的最大的沙漏形狀,最後在一行中輸出剩下沒用掉的符號數。
輸入樣例:
19 *
輸出樣例:
*****
**** ***
*****
range()函式:
range(stop)
range(start, stop[, step])
引數說明:
start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價於range(0, 5);
stop: 計數到 stop ,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
step:步長,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)
**def
pan(m)
:list=[
]sum=1
sum1 =
0 k =
1 k1 =
3while
(sum
<=m)
:sum
+= k1*
2 k = k1
k1 +=
2sum
-= k*
2if k ==1:
list+=[
1,sum]
else
:list
+=[k-2,
sum]
return
list
a =input()
s =list
(a.split(
" ")
)m =
m = pan(
int(s[0]
))p =1
#空值輸出符號前面的空格數
for i in
range
(m[0],
1-2,
-2):
for j in
range(1
,i+1):
print
(s[1
],end='')
print()
#輸出空格
if i!=1:
for p1 in
range(1
,p+1):
print
(" "
,end='')
p +=
1p -=
2for i in
range(3
,m[0]+
2,2)
:for p1 in
range(1
,p+1):
print
(" "
,end="")
p -=
1for j in
range(1
,i+1):
print
(s[1
],end='')
print()
#print('\n')會空兩行
print
(int
(s[0])
-m[1
])
L1 002 列印沙漏
l1 002.列印沙漏 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相鄰兩行符號數差2 符號數先從大到小順序遞減到1,再從小到大順序遞增 首尾符號數相等。給定任意n個符號,不一定能正好組成乙個沙漏。要求...
L1 002 列印沙漏
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相鄰兩行符號數差2 符號數先從大到小順序...
L1 002 列印沙漏
本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相鄰兩行符號數差2 符號數先從大到小順序遞減到1,再從小到大順序遞增 首尾符號數相等。給定任意n個符號,不一定能正好組成乙個沙漏。要求列印出的沙漏能用掉盡可能...