p1352.pas

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

PAS
93
字号
PROGRAM p1352;

TYPE
        BigNum  =       array[0..1000]of Longint;

VAR
        part,p                  :Longint;
        m,n                     :Longint;
        s                       :string;
        ans                     :BigNum;

FUNCTION CharToInt(var t:String):BigNum;
var
        temp                    :BigNum;
        i                       :Longint;
begin
temp[0]:=length(t);
for i:=1 to temp[0] do
        if (t[i]>='0') and (t[i]<='9') then
                temp[temp[0]-i+1]:=ord(t[i]) - ord('0') else
        if (t[i]>='A') and (t[i]<='Z') then
                temp[temp[0]-i+1]:=ord(t[i]) - ord('A')+10 else
        if (t[i]>='a') and (t[i]<='z') then
                temp[temp[0]-i+1]:=ord(t[i]) - ord('a')+36;
CharToInt:=temp;
end;

FUNCTION divp(var t:BigNum):Longint;
var
        i,temp                  :Longint;
begin
temp:=0;
for i:=t[0] downto 1 do
        begin
        temp:=temp * m + t[i];
        t[i]:=temp div n;
        temp:=temp mod n;
        end;
divp:=temp;
while (t[0]>1)and(t[t[0]]=0) do dec(t[0]);
end;

PROCEDURE Print(var t:BigNum);
var
        i                       :Longint;
begin
for i:=t[0] downto 1 do
        if t[i]<=9 then write(t[i]) else
        if t[i]<36 then write(chr(t[i]+ord('A')-10)) else
        write(chr(t[i]+ord('a')-36));
writeln;
end;

PROCEDURE Change(t:BigNum);
var
        answer                  :BigNum;
begin
answer[0]:=0;
while (t[0]<>1) or (t[1]<>0) do
        begin
        inc(answer[0]);
        answer[answer[0]]:=divp(t);
        end;

if answer[0]=0 then
        begin
        inc(answer[0]);
        answer[1]:=0;
        end;

write(m,' ');
print(ans);
write(n,' ');
print(answer);
writeln;
end;


BEGIN
//assign(input,'p.in');
//reset(input);
//assign(output,'p.out');
//rewrite(output);
readln(part);
for P:=1 to part do
        begin
        Readln(m,n,s);
        while (s[1]=' ') do delete(s,1,1);
        ans:=CharToInt(s);
        Change(ans);
        end;
//close(output);
END.

⌨️ 快捷键说明

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