TOJ 110 六芒星的咒符參考解法

Ping-Lun Liao
Nov 3, 2022

--

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

此題要用 * 符號劃出六芒星,六芒星是由一個正三角形和一個倒三角形所組成的,中間有三行重疊,圖案如下圖

參考解法
因為此六芒星圖形是上下兩半對稱的,若以高度 height = 4 為例,可以將垂直軸轉換成 -k/2 到 k/2 值(下圖的 line 變數),而 k 值為六芒星行數。此時可以算出空白個數與星星個數(spaceAndStar)的總數為 2*height — 1,而空白數就是 line 變數的絕對值再加1,星星數為spaceAndStar — 2 * space。

用 height = 5 與 height = 6 來測試一下

以上的數學推導似乎可行,來寫程式吧。

C++程式碼:

結果

Originally published at https://yunlinsong.blogspot.com.

--

--

No responses yet