|
{说明:用字符串来存放减数和被减数,最大限制255位减255位}
program jjzx; {本程序没有考虑两负数相减} var s,s1,s2:string; a,b,c:array[1..260] of integer; i,l,m,k1,k2:integer; d:char; {D用来表示正负号} begin writeln('input s1:');readln(s1); writeln('input s2:');readln(s2); l:=length(s1); m:=length(s2); if l begin s:=s1; s1:=s2; s2:=s; d:='-' end; if l=m then {如果长度一样则直接比较,S1小就要与S2调换} if s1 begin s:=s1;s1:=s2;s2:=s;d:='-' end; l:=length(s1); m:=length(s2); {为什么要再次得到长度} k1:=261; {为什么是261} for i:=l downto 1 do {S1转换过程} begin k1:=k1-1; a[k1]:=ord(s1[i])-48 end; k2:=261; for i:=m downto 1 do {S2转换过程} begin k2:=k2-1; b[k2]:=ord(s2[i])-48 end;
for i:=260 downto k1 do {开始计算} if a[i] begin c[i]:=a[i]+10-b[i]; a[i-1]:=a[i-1]-1 {为什么下标是I-1} end else c[i]:=a[i]-b[i]; writeln('jie guo shi :'); write(d:2); {首先输出符号位} for i:=k1 to 260 do write(c[i]); writeln end.
|