program grey; {$APPTYPE CONSOLE} {$N+} var a: array[0..61] of extended; j,k: shortint; s: string; o: text; x: extended; BEGIN {Зчитування даних} assign(o,'grey.dat'); reset(o); readln(o,x); close(o); s:=''; {Визначення степенів двійки і довжини коду} j:=0; a[j]:=1; repeat inc(j); a[j]:=a[j-1]*2 until x < a[j]; dec(j); {Визначення коду Грея} if x=0 then s:='0' else REPEAT while (x < a[j]) and (0 < j) do begin s:=s+'0'; dec(j) end; if (0 < x) then begin x:=2*a[j]-x-1; s:=s+'1'; if (x=0) then for k:=1 to j do s:=s+'0'; dec(j) end; UNTIL x=0; {Запис відповіді} assign(o,'grey.sol'); rewrite(o); writeln(o,s); close(o) END.