p2371.pas

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 91 行

PAS
91
字号
PROGRAM p2371;

CONST
        maxn=64;

TYPE
        BigNum=array[0..100]of Integer;

VAR
        data                            :array[1..maxn]of BigNum;

PROCEDURE Mulp(var s:BigNum);
var
        temp,i                          :Integer;
begin
temp:=0;
for i:=1 to s[0] do
        begin
        temp:=temp + s[i] * 3;
        s[i]:=temp mod 10;
        temp:=temp div 10;
        end;
while (temp>0) do
        begin
        inc(s[0]);
        s[s[0]]:=temp mod 10;
        temp:=temp div 10;
        end;
end;

PROCEDURE MakeData;
var
        i                               :Integer;
begin
fillchar(data,sizeof(data),0);
data[1][0]:=1;
data[1][1]:=1;
for i:=2 to 64 do
        begin
        data[i]:=data[i-1];
        Mulp(data[i]);
        end;
end;

PROCEDURE  Print(var s:BigNum);
var
        i                               :Integer;
begin
for i:=s[0] downto 1 do write(s[i]);

end;

PROCEDURE Main;
var
        i                               :Integer;
        first                           :Boolean;
        temp                            :BigNum;
        n                               :Int64;
begin
readln(n);
while (n<>0) do
        begin
        dec(n);
        temp[0]:=0;
        while n>0 do
                begin
                inc(temp[0]);
                temp[temp[0]]:=n mod 2;
                n:=n div 2;
                end;
        write('{');
        first:=true;
        for i:=1 to temp[0] do
                if temp[i]=1 then
                        begin
                        if not first then write(',');
                        write(' ');
                        print(data[i]);
                        first:=false;
                        end;
        writeln(' }');
        readln(n);
        end;
end;

BEGIN
//assign(input,'p.in');
//reset(input);
MakeData;
main;
END.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?