题目描述
给定两个正整数,计算它们的差,计算结果可能为负数。
输入格式
共两行,每行包含一个整数。
输出格式
共一行,包含所求的差。
数据范围
1≤整数长度≤105
样例
输入样例:
32
11
输出样例:
21
算法1
高精度减法
python 代码
#a和b都是正数
def sub(a,b):
c=[]
t=0
for i in range(len(a)):
t=a[i]-t
if i<len(b):
t-=b[i] #减完后t有2种情况,小于0和大于等于0
c.append((t+10)%10) #包含2种情况
if t<0:
t=1
else:
t=0
while len(c)>1 and c[-1]==0: #把逆序中最后的0去掉,len(c)>1是要判断两个数相减是否为0,是0的话就不用了删除最高位的0
c.pop(-1)
return c
#判断a>=b
def cmp(a,b):
if len(a)!=len(b):
return len(a)>len(b)
for i in range(len(a)):
if a[i]!=b[i]:
return a[i]>=b[i]
return True
if __name__ == "__main__":
a=list(map(int,input()))
b=list(map(int,input()))
q = cmp(a,b)
a.reverse()
b.reverse()
if q:
c = sub(a,b)
c.reverse()
print("".join(str(i) for i in c))
else:
c = sub(b,a)
c.reverse()
print("-" + "".join(str(i) for i in c))