题目大意:
给出T组A+B,A,B的位数很长,让你求出A+B的总和并按格式输出:
例:
当T=3,
Case 1:
A + B = 总和
Case 2:
A + B = 总和
Case 3:
A + B = 总和
数据:
1<=T<=20
每个整数的长度不会超过1000
题解:
这题就是做T遍高精度而已,不过输出的格式好坑,因为最后一组A+B不用换行!!!
其他随模版即可。
var
a,b,c:array [0..1001] of longint;
n,n1,p:ansistring;
t,x,i,j:longint;
begin
readln(t);
j:=t;
while t>=1 do
begin
readln(p);
n:=''; n1:='';
n:=copy(p,1,pos(' ',p)-1);
n1:=copy(p,pos(' ',p)+1,length(p)-pos(' ',p));
writeln('Case ',j-t+1,':');
write(n,' + ',n1,' = ');
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fillchar(c,sizeof(c),0);
for i:=1 to length(n) do
a[i]:=ord(n[length(n)-i+1])-48;
for i:=1 to length(n1) do
b[i]:=ord(n1[length(n1)-i+1])-48;
x:=0;
for i:=1 to 1001 do
begin
c[i]:=a[i]+b[i]+x;
x:=c[i] div 10;
c[i]:=c[i] mod 10;
end;
x:=1001;
while (c[x]=0) and (x<>1) do dec(x);
for i:=x downto 1 do write(c[i]);
writeln;
if t<>1 then writeln;
dec(t);
end;
end.