一道PASCAL 题,高手请进

来源:百度知道 编辑:UC知道 时间:2024/07/03 22:04:22
输入:三道题均为输入两行,分别为两个长度不超过255的正整数.
输出:加,减,乘的结果.(请分成三个程序写,谢谢了!)

典型的高精度嘛
加法:
program add;
var a,b,t:array [1..260] of integer;
s1,s2,c:string;
l1,l2,i:integer;
procedure plus;
begin
for i:=1 to l1 do begin
t[i+1]:=(t[i]+a[i]+b[i]) div 10;
t[i]:=(t[i]+a[i]+b[i]) mod 10;
end;
end;
begin
assign(input,'add.in');
assign(output,'add.out');
reset(input);
rewrite(output);
readln(s1);
readln(s2);
if length(s1)<length(s2) then begin
c:=s1;
s1:=s2;
s2:=c;
end;
l1:=length(s1);
l2:=length(s2);
for i:=l1 downto 1 do a[l1-i+1]:=ord(s1[i])-48;
for i:=l2 downto 1 do b[l2-i+1]:=ord(s2[i])-48;
for i:=l2+1 to l1 do b[i]:=0;
for i:=1 to l1 do t[i]:=0;
plus;
while t[l1]=0 do l1:=l1-1;
for i:=l1 downto 1 do write(t[i]);
writeln;
close(input);
close(output);
end.

减法:
program sub;