這是我的程序:
program monkey;
var n,i,l,lc,la,lb,x:longint;
a,b,c:array[1..10000]of longint;
begin
read(n);
if n=1 then
write(0)
else
begin
a[1]:=0;la:=1;
b[1]:=1;lb:=1;
for l:=3 to n do
begin
for i:=1 to la do
begin
x:=a[i]+b[i];
a[i+1]:=a[i+1]+x div 10;
a[i]:=x mod 10;
end;
c:=a;if c[la+1]<>0 then lc:=la+1 else lc:=la;
x:=0;
for i:=1 to lc do
begin
x:=x+c[i]*(l-1);
c[i]:=x mod 10;
x:=x div 10;
end;
while x>0 do
begin
lc:=lc+1;
c[lc]:=x mod 10;
x:=x div 10;
end;
a:=b;b:=c;fillchar(c,sizeof(c),0);
la:=lb;lb:=lc;
end;
while (b[lb]=0)and(lb>1) do lb:=lb-1;
for i:=lb downto 1 do write(b[i]);
end;
end.
額,沒加文件哈