wuxudongtv 2014-05-10 06:50:32
点我顶贴
收藏
删除
var
a:array[0..501]of longint;
n:longint;
procedure ksd(p:longint);
var
b:array[0..1000]of longint;
i,j:integer;
begin
if p=1 then
begin
a[1]:=2;
exit;
end;
fillchar(b,sizeof(b),0);
if odd(p) then
begin
ksd(p div 2);
for i:=1 to 500 do
for j:=1 to 500 do inc(b[i+j-1],a[i]*a[j]);
for i:=1 to 501 do
begin
a[i]:=b[i]*2;
a[i]:=a[i]+a[i-1] div 10;
a[i-1]:=a[i-1] mod 10;
end;
end
else
begin
ksd(p div 2);
for i:=1 to 500 do
for j:=1 to 500 do inc(b[i+j-1],a[i]*a[j]);
for i:=1 to 501 do
begin
a[i]:=b[i]+a[i-1] div 10;
a[i-1]:=a[i-1] mod 10;
end;
end;
a[501]:=0;
end;
begin
readln(n);
writeln(trunc(n*ln(2)/ln(10))+1);
ksd(n);
for n:=500 downto 2 do write(a[n]);write(a[1]-1);
end.
测评机老是说我CE.