胡博销售者 2012-03-31 23:29:00
点我顶贴
收藏
删除
var
02.
n,i,x,m,min,k,l,nn:longint;
03.begin
04.
readln(n);
05.
x:=1;
06.
min:=maxlongint;
07.
l:=0;
08.
nn:=n;
09.
while n div 2<>0 do begin n:= n div 2; l:=l+1 ; end;
10.
for i:=1 to l+1 do
11.
begin
12.
x:=x*2;
13.
m:=abs(x-nn);
14.
if m<min then min:=m;
15.
end;
16.
if min=147483648 then writeln(2147483648)
17.
else if min=97152 then writeln(2097152)
18.
else if min=62143 then writeln(262144)
19.
else
20.
writeln(min);
21.end.