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:
3
Poprawną odpowiedzią jest wyjście:
000 001 011 010 110 111 101 100
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 :