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.
Pierwszy wiersz wejścia zawiera liczbę całkowitą n z zakresu 1..8.
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.
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 :