P2142 高精度减法

来源:互联网 发布:java default关键字 编辑:程序博客网 时间:2024/04/30 05:19

题目描述

高精度减法

输入输出格式

输入格式:

两个数(第二个可能比第一个大)

输出格式:

结果(是负数要输出负号)

输入输出样例

输入样例#1:
21
输出样例#1:
1

说明



const
 maxn=10000;
var
  i,j,k,n,m,len1,len2:longint;
  a,b:array[0..maxn]of longint;
procedure init;
var
  s1,s2,s:string;
  i:longint;
begin
    readln(s1);
    readln(s2);
    len1:=length(s1);
    len2:=length(s2);
    if (len2>len1) or (len1=len2) and (s1<s2) then
    begin
        write('-');
        s:=s1;s1:=s2;s2:=s;
        len1:=length(s1);
        len2:=length(s2);
    end;
    for i:=1 to len1 do
    a[maxn-len1+i]:=ord(s1[i])-ord('0');
    for i:=1 to len2 do
    b[maxn-len2+i]:=ord(s2[i])-ord('0');
end;


procedure add;
var
g,i:longint;
begin
    g:=0;
    for i:=maxn downto 1 do
    if a[i]>=b[i]+g then
    begin
        a[i]:=a[i]-b[i]-g;
        g:=0;
    end else
    begin
        a[i]:=a[i]+10-b[i]-g;
        g:=1;
    end;
end;
procedure print;
var
i,j:longint;
begin
    i:=1;
    while (i<maxn)and(a[i]=0) do inc(i);
    for j:=i to maxn do
    write(a[j]);
end;
begin
    init;
    add;
    print;
end.




0 0
原创粉丝点击