科赫曲線(Koch curve)是一種著名的碎形(Fractal),由瑞典數學家海里格·馮·科赫(Helge von Koch)於1904年提出。其構造方式是將線段三等分,用一個等邊三角形替換中間段,無限迭代後形成一條無限長、無切線且具局部自我相似性的曲線。
長度為 18 的 1 階 科赫曲線 如下

長度為 18 的 2 階 科赫曲線 如下

長度為 18 的 3 階 科赫曲線 如下

請下指令控制機器人畫出指定的科赫曲線,以下是你可以使用的指令集
forward(n)向前移動距離 n,移動時從會畫出一條由移動前位罝到移動後位置的直線
left(a)逆時針旋轉 $a$ 度 $(1 \le a \le 180)$,例如:left(60),能讓機器人原地逆時針旋轉 60 度。
right(a)順時針旋轉 $a$ 度 $(1 \le a \le 180)$,例如:right(30),能讓機器人原地順時針旋轉 30 度。
請依序輸出繪製指定科赫曲線的指定,每個指令一行。
請遵守以下限制:
開始時,機器人位在需繪製之科赫曲線的最左邊端點,面向右方。
需以最少步驟完成。
如果步驟超過 50,000 步,僅需輸出前面 50,000 步即可
子任務說明
子任務1:
範例測資
子任務2:
總步數小於 50,000 步
$1 \le L < 2^{31}-1 $
子任務3:
總步數小於 50,000 步
$1 \le L < 2^{63}-1 $
子任務4:
沒有題目敘述(含輸入格式 Input Format 說明)之外的限制
輸入為由空白字元分隔的 2 個正整數 $L, N$,表示要繪製長度為 $L$ 的 $N$ 階科赫曲線。
其中
$1 \le L < 2^{63}-1 $
$L$ 為 3 的倍數
$ 1 \le N \le 40$
輸出為多行資料,依序為畫出這個科赫曲線的指令
如果步驟超過 50,000 步,僅需輸出前面 50,000 步即可
18 1
forward(18)
18 2
forward(6) left(60) forward(6) right(120) forward(6) left(60) forward(6)
18 3
forward(2) left(60) forward(2) right(120) forward(2) left(60) forward(2) left(60) forward(2) left(60) forward(2) right(120) forward(2) left(60) forward(2) right(120) forward(2) left(60) forward(2) right(120) forward(2) left(60) forward(2) left(60) forward(2) left(60) forward(2) right(120) forward(2) left(60) forward(2)
內高 115 資訊學科能力競賽-校內初賽
| No. | Testdata Range | Score |
|---|---|---|
| 1 | 0~2 | 0 |
| 2 | 3~7 | 30 |
| 3 | 8~12 | 30 |
| 4 | 13~17 | 40 |