Boz Kod
Greyi kodları, ardıcıl iki dəyərin yalnız bir bitdə fərqləndiyi ikili nömrələmə sistemidir. Hər bir N-bitli Greyi kodu N bitdən ibarətdir. Ən sadə halda, N = 1 olduqda, Greyi kodları 0 və 1 olur.
N-bitli Greyi kodları dəsti verildikdə, N + 1-bitli Greyi kodlarını asanlıqla qurmaq mümkündür. Bunun üçün mövcud kodları sütun şəklində yazırıq, son kodun altına xətt çəkirik və mövcud kodları xəttin altında "əks etdiririk", yəni siyahını tərsinə çevirib təkrarlayırıq. Əsas kodların qarşısına 0 bitini, yeni "əks etdirilmiş" kodların qarşısına isə 1 bitini əlavə edirik. Bu səbəbdən Greyi kodları "əks olunmuş ikili kodlar" adlanır.
N = 2 üçün Greyi kodlarının qurulmasına baxaq:
N = 2 üçün Greyi kodlarının siyahısı belədir: 00, 01, 11, 10.
N = 3 üçün Greyi kodlarını necə yaratmaq olar:
Siz yalnız k-cı N-bitli Greyi kodunu hesablamalı və çıxarmalısınız. Kodlar 0-dan başlayaraq nömrələnir. Məsələn, əgər N = 3 və k = 4 olarsa, proqram 110 çıxarmalıdır.
Giriş verilənləri
Bir neçə testdən ibarətdir. Hər bir test bir sıra təşkil edir və N (1 ≤ N ≤ 72) və k (0 ≤ k ≤ 2^N−1) dəyərlərini ehtiva edir. Sonuncu sıra iki sıfırdan ibarətdir və işlənmir.
Əgər yuxarıdakı mətndən dərhal aydın deyilsə, qeyd edin ki, k dəyəri 32 bit və ya hətta 64 bit tam ədədə sığmaya bilər. Həmçinin qeyd etmək lazımdır ki, bütün 2^N Greyi kod dəyərlərini hesablamaq istəməyəcəksiniz, ancaq yalnız k-cı dəyərin hesablanmasına diqqət yetirin.
Çıxış verilənləri
Hər bir giriş halı üçün hal nömrəsini (1, 2, …), N və k dəyərlərini və k-cı Greyi kod dəyərini ("g" olaraq etiketlənmiş) göstərin. Aşağıdakı nümunələrdə göstərilən formata əməl edin.