來自 LIOJ 上的題目,還是有不太熟悉,所以在練習一次。
解題思維
這一題可以先拆成兩個部分:
- 星星的總行數
- 木棒的總行數
星星總共會有 n 行,所以迴圈會寫成:
(i 從 1 開始是因為函式的參數需要,如果從 0 開始的話會不太方便)
1 | for(let i=1; i<=n; i++) { |
木棒總共會有 n-1 行,所以迴圈會寫成:
(一樣需要傳遞引數,所以 i 從 1 開始)
1 | for(let i=1; i<=n-1; i++) { |
這樣就完成了基本架構:
solve(['2'])
:
1 | * |
solve(['3'])
:
1 | * |
接著再來處理「每行的星星」跟「每行的木棒」就大功告成了。
- 每行的星星數量規律為
2i-1
,星星的空格為n-i
- 每行的木棒數量固定,木棒的空格規律為
n-1
所以把前面寫好的部分稍微改寫一下:
1 | // 星星 |
這樣就大功告成!
solve(['3'])
:
1 | * |