格雷碼是一連串的二進制數字,相鄰的兩個數字之間,只有恰好一個位元改變,更多詳細的介紹請參考 本連結,以下是所有 3 bit 二進位數字所形成的格雷碼:
所有 $n$ bit 二進位數字所形成的格雷碼可以以下面的方式生成:
將格雷碼拆成兩半,決定兩部分的第一個數字,並化簡為更小的子問題。
兩半部的第一個數字分別全部都是 0、1(或相反)。是否相反由它們前面 1 數量的奇偶性決定。
在這道題目中,你要以上述的方式生成所有 $n$ bit 的二進位數字所形成的格雷碼。
輸入只有一個正整數 $n$。
測資範圍限制
- $1 \le n \le 16$
請根據題目所述方式,輸出的所有 $n$ bit 的二進位數字所形成的格雷碼。
No. | Testdata Range | Score |
---|---|---|
1 | 0~15 | 100 |