高精度减法怎么编??????
pascal吧
全部回复
仅看楼主
level 1
铁萌还0n 楼主
求快!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2014年09月25日 11点09分 1
level 11
const
maxn=1000;
var
str1,str2,str:longint;
a,b:array[1..maxn]of longint;
flag:boolean;
procedure init;
var
i:longint;
str,str1,str2:string;
len1,len2,len:longint;
begin
flag:=true;
readln(str1);
readln(str2);
len1:=length(str1);
len2:=length(str2);
if (len1<len) or (len1=len2) and (str1<str2) then
begin str:=str1; str1:=str2; str2:=str;
len:=len1; len1:=len2; len2:=len;
flag:=false; end;
for i:=1 to len1 do
a[maxn-len1+i]:=ord(str1[i])-48;
for i:=1 to len2 do
b[maxn-len2+i]:=ord(str2[i])-48;
end;
procedure main;
var
i,g: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]:=10+a[i]-b[i]-g; g:=1; end;
end;
procedure print;
var
i,j:longint;
begin
if not flag then write(*-*);
i:=1;
while a[i]=0 do inc(i);
for j:=i to maxn do
write(a[j]);
end;
begin
init;
main;
print;
end.
//这是高精度减高精度。
2014年09月29日 13点09分 2
1