首页 > 学院 > 开发设计 > 正文

洛谷 2142高精度减法

2019-11-08 01:07:42
字体:
来源:转载
供稿:网友

题目

高精度减法

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

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

题解

高精度减法

代码

var a,b,c:array[1..1000]of longint; i,j,n:longint; s,t,k:ansistring;PRocedure sub;var i,j,k,x:longint;begin i:=1; while i<=length(s) do begin if a[i]<b[i] then begin a[i]:=a[i]+10; a[i+1]:=a[i+1]-1; end; c[i]:=a[i]-b[i]; inc(i); end;end;begin readln(s); readln(t); if (length(s)<length(t))or((length(s)=length(t))and(s<t)) then begin k:=s;s:=t;t:=k; write('-'); end; for i:=1 to length(s) do a[length(s)-i+1]:=ord(s[i])-ord('0'); for i:=1 to length(t) do b[length(t)-i+1]:=ord(t[i])-ord('0'); sub; i:=1000; while (c[i]=0)and(i>1) do dec(i); for j:=i downto 1 do write(c[j]);end.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表