PersonalCorpus 版 (精华区)

寄信人: sino (蚱蜢舟)
标  题: 1206
发信站: 哈工大紫丁香 (2002年03月18日13:15:34 星期一)
来  源: mtlab4.hit.edu.cn 

166840 05:18:10 18 Mar 2002
Bozhang,HIT,P.R.China 1206 Pascal Accepted 0.02 sec 53K

type LongInteger =  record
                        n:array[1..30] of integer;
                        len:integer;
                    end;
var
    i,k:integer;
    r,s:LongInteger;
procedure setlengthLI(var a:LongInteger;v:integer);
begin a.len:=v end;
procedure setvalueLI(var a:LongInteger;pos,v:integer);
begin a.n[pos]:=v; end;
procedure copyLI(var des,src:LongInteger);
var i:integer;
begin
    for i:=1 to src.len do des.n[i]:=src.n[i];
    des.len:=src.len;
end;
procedure PlusLI(var des,src1,src2:LongInteger);
var i,k:integer;
begin
    i:=1; k:=0;
    while (i<=src1.len) or (i<=src2.len) do begin
        if i<=src1.len then des.n[i]:=src1.n[i] else des.n[i]:=0;
        if i<=src2.len then des.n[i]:=des.n[i]+src2.n[i];
        des.n[i]:=des.n[i]+k;
        k:=des.n[i] div 10000;
        des.n[i]:=des.n[i] mod 10000;
        inc(i);
    end;
    if k<>0 then begin des.n[i]:=k; des.len:=i end else des.len:=i-1;
end;
procedure subLI(var des,src:Longinteger);
var
    i,j,k:integer;
begin
    i:=1; k:=0;
    while i<=src.len do begin
        des.n[i]:=des.n[i]-src.n[i]-k;
        if des.n[i]<0 then begin
            k:=1;
            des.n[i]:=des.n[i]+10000;
        end;
        inc(i);
    end;
    while k<>0 do begin
        des.n[i]:=des.n[i]-k;
        if des.n[i]<0 then des.n[i]:=des.n[i]+10000 else k:=0;
        inc(i);
    end;
end;
procedure MulLI(var des:LongInteger;u:integer);
var i,k:integer;
begin
    if u=0 then begin setlengthLI(des,0); exit end;
    if u=1 then exit;
    i:=1; k:=0;
    while i<=des.len do begin
        des.n[i]:=des.n[i]*u+k;
        k:=des.n[i] div 10000;
        des.n[i]:=des.n[i] mod 10000;
        inc(i);
    end;
    if k<>0 then begin des.n[i]:=k; des.len:=i end else des.len:=i-1;
end;
procedure MulLI2(var des,src1,src2:LongInteger);
var
    i:integer;
    t:LongInteger;
begin
    setlengthLI(des,0);
    for i:=src1.len downto 1 do begin
        MulLI(des,10000);
        CopyLI(t,src2);
        MulLI(t,src1.n[i]);
        PlusLI(des,des,t);
    end;
end;
procedure PrintLI(var des:LongInteger);
var i:integer;
begin
    write(des.n[des.len]);
    for i:=des.len-1 downto 1 do begin
        if des.n[i]<1000 then write(0);
        if des.n[i]<100 then write(0);
        if des.n[i]<10 then write(0);
        write(des.n[i]);
    end;
    writeln;
end;
begin
    readln(k);
    setlengthLI(s,1);
    setvalueLI(s,1,36);
    for i:=2 to k do mulLI(s,55);
    printLI(s);
end.
--
撷取生活中每一朵清新的浪花,智慧的浪花 ..汇成音乐的海洋.

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: mtlab4.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:8.132毫秒