Дано натуральное число m. Найти такое натуральное число n, двоичная запись которого получается из двоичной записи m изменением порядка цифр на обратный.
ломаю голову несколько дней
как делать представляю:
1)преобразовать введенное число в двоичный вид
2)поменять порядок цифр на обратный
3)преобразовать полученное число в десятичный вид
с первыми двумя пунтками проблем не возникает, а вот с третьим проблема.
Делаю так:
Код
program test;
uses
crt;
var
x, xxx, d, c, rez, n : integer;
res,ves:longint; i,j:byte;
y : real;
begin
clrscr;
readln(x);
rez:=0;
n:=0;
xxx:=x;
{в этом цикле узнаю кол-во повторов цикла}
while xxx<>0 do begin
d:=xxx mod 2;
xxx :=xxx div 2;
n :=n+1;
end;
n :=n-1;
{Нахожу двоичный вид введенного числа, изменяю порядок цифр на обратный и пытаюсь получить десятичный вид числа}
while x<>0 do begin
d:=x mod 2;
x :=x div 2;
rez := d*(2*n)+rez;
n := n-1;
end;
writeln(rez);
readln;
end.
у кого какие мысли по поводу решения этой задачки?