HDU P1002 A + B Problem II

题目大意:

给出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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值