TQC+ 程式語言Python 410 繪製等腰三角形
題目說明:
請撰寫一程式,依照使用者輸入的n,畫出對應的等腰三角形。
範例輸入
7
範例輸出
*
***
*****
*******
*********
***********
*************
程式碼:
n = eval(input())
for i in range(n):
for j in range(n - i - 1):
print(' ', end='')
for k in range(i * 2 + 1):
print('*', end='')
print('')
5 則留言
vinson
這題好像有錯
vinson
沒事,看錯
JamesBang
OK
如有其他問題也歡迎留言討論,謝謝!
oo
不好意思可以講解一下原理嗎
JamesBang
星星圖案是學程式語言的基本練習,主要使用 “雙層迴圈”(迴圈裡再放迴圈) 來解題。
最外層的迴圈控制列數,例如範例輸入 7,輸出的列數就有七列,最外層迴圈 i 要跑 7 次。
最外層迴圈底下還有兩個迴圈 j 和 k,一個要輸出空白、另一個輸出星號。
迴圈 j 和 k 的範圍,會根據要印出的數量而有所不同,
以 k 來講解:迴圈 k 我要印出星號,然後看範例輸出我們知道,最外層迴圈跑第一次的時候,星號印出一個,再來是 3、5、7、9……,也就是說最外層迴圈跑第一次的時候,迴圈 k 要跑 1 次、最外層迴圈跑第二次的時候,迴圈 k 要跑 3 次…… 後面以此類推,公式我用 i * 2 + 1,i 跑第一次時值為 0、跑第二次值為 1、第三次為 2… ,你將最外層迴圈 i 的值代入進去,就會得到 1、3、5、7、9…… (可以拿紙來寫比較好理解);
印出空白一樣原理,如果輸入 7 那麼第一次就要印出 6 個空白。
P.S. 根據輸入的列數,第一行的空白數會不一樣哦~
然後在 print 時使用 end=”,這樣就不會斷行,可以讓星星連在一起,等每一列的空白和星星都印好後,最底下再用 print(”) 斷行。