codevs 高精度减法 3115

    xiaoxiao2021-03-26  28

    题目描述 Description 给出两个正整数A和B,计算A-B的值。保证A和B的位数不超过500位。 输入描述 Input Description 读入两个用空格隔开的正整数 输出描述 Output Description 输出A-B的值 样例输入 Sample Input 3 12 样例输出 Sample Output -9 数据范围及提示 Data Size & Hint

    两个正整数的位数不超过500位

    代码:

    var   a,b,c:array [0..500] of longint;   len,temp,i,j,k:longint;   flag:boolean;   s,s1,s2:ansistring; begin   readln(s);   temp:=1;   for i:=1 to length(s) do     if s[i]<>' ' then       s1:=s1+s[i]     else       break;   for j:=i+1 to length(s) do     s2:=s2+s[j];   i:=length(s1);   j:=length(s2);   if i>j then     begin       len:=i;       flag:=true;     end   else     begin       len:=j;       flag:=false;     end;   for k:=len downto 1 do     begin       if i>0 then         begin           a[k]:=ord(s1[i])-48;           dec(i);         end       else         a[k]:=0;       if j>0 then         begin           b[k]:=ord(s2[j])-48;           dec(j);         end       else         b[k]:=0;       if flag then         c[k]:=a[k]-b[k]       else         c[k]:=b[k]-a[k];     end;   for k:=len downto 1 do     if c[k]<0 then       begin         c[k]:=c[k]+10;         dec(c[k-1]);       end;   if not flag then     write('-');   for k:=1 to len do     if c[k]=0 then       inc(temp)     else       break;   for k:=temp to len do     write(c[k]); end.

    转载请注明原文地址: https://ju.6miu.com/read-660802.html

    最新回复(0)