讨论 / 很呕心的题
胡博销售者 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.

查看更多回复
提交回复