TopCoder

User's AC Ratio

100.0% (4/4)

Submission's AC Ratio

71.4% (5/7)

Tags

Description

格雷碼是一連串的二進制數字,相鄰的兩個數字之間,只有恰好一個位元改變,更多詳細的介紹請參考 本連結,以下是所有 3 bit 二進位數字所形成的格雷碼:

  • 000
  • 001
  • 011
  • 010
  • 110
  • 111
  • 101
  • 100

所有 $n$ bit 二進位數字所形成的格雷碼可以以下面的方式生成:


將格雷碼拆成兩半,決定兩部分的第一個數字,並化簡為更小的子問題。


兩半部的第一個數字分別全部都是 0、1(或相反)。是否相反由它們前面 1 數量的奇偶性決定。

在這道題目中,你要以上述的方式生成所有 $n$ bit 的二進位數字所形成的格雷碼。

Input Format

輸入只有一個正整數 $n$。

測資範圍限制
- $1 \le n \le 16$

Output Format

請根據題目所述方式,輸出的所有 $n$ bit 的二進位數字所形成的格雷碼。

Sample Input 1

3

Sample Output 1

000
001
011
010
110
111
101
100

Sample Input 2

4

Sample Output 2

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

Hints

Problem Source

Subtasks

No. Testdata Range Score
1 0~15 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1
1 1000 65536 65536 1
2 1000 65536 65536 1
3 1000 65536 65536 1
4 1000 65536 65536 1
5 1000 65536 65536 1
6 1000 65536 65536 1
7 1000 65536 65536 1
8 1000 65536 65536 1
9 1000 65536 65536 1
10 1000 65536 65536 1
11 1000 65536 65536 1
12 1000 65536 65536 1
13 1000 65536 65536 1
14 1000 65536 65536 1
15 1000 65536 65536 1