Zadanie : kod-graya-1a
Zadanie

W przetwornikach analogowo-cyfrowych, takich jak np. czujniki położenia, czy obrotu, stosuje się kody Graya. Kod Graya jest kodem dwójkowym, w którym dwa kolejne słowa kodowe tej samej długości różnią się stanem tylko jednego bitu.

Poniżej podane są wszystkie słowa kodowe długości 3:

numer 	kod
-----------
0	000
1	001
2	011
3	010
4	110
5	111
6	101
7	100

Jeśli przyjmiemy, że pierwszy wyraz kodu Graya ma numer 0 i składa się z samych zer, to wyraz n-ty możemy wyznaczyć bez konieczności znajomości wyrazów poprzednich - wystarczy na liczbie n i jej połowie wykonać operację logiczną xor:

kody trzycyfrowe
n 		= 6 = 110 		- numer kodu Graya
n div 2		= 3 = 011		- połowa liczby n
n xor (n div 2)	= 110 xor 011 = 101	- 6-ty kod Graya

Napisz program, który dla liczby całkowitej n wyznaczy wszystkie n bitowe kody Graya.

Wejście

Pierwszy wiersz wejścia zawiera liczbę całkowitą n z zakresu 1..8.

Wyjście

Każdy z kolejnych 2n wierszy powinien zawierać jeden z kodów Graya. Kody powinny być zapisane w kolejności rosnących ich numerów.

Przykład

Dla danych podanych na wejściu:

5

Poprawną odpowiedzią jest wyjście:

00000
00001
00011
00010
00110
00111
00101
00100
01100
01101
01111
01110
01010
01011
01001
01000
11000
11001
11011
11010
11110
11111
11101
11100
10100
10101
10111
10110
10010
10011
10001
10000

Jeśli chcesz zobaczyć inny przykład odśwież tę stronę klawiszem F5

Opcje zadania:

Biblioteki         : iostream iomanip cmath string 
Limit czasu        : 0.1 s
Limit pamięci      : 32 MB
Słowa niedozwolone :