难点在于如何判断两个数组的大小。题目的前提条件是不能使用大整数,因此判断的时候是两个列表。需要针对两个列表位数的不同、相同进行判断。尤其是相同的情况下,需要从大到小位数进行逐个比较。最蛋疼的是竟然会出现两个完全相等的输入,因此还要考虑两个列表完全相同的情况。
A = list(map(int,list(input())))
B = list(map(int,list(input())))
def which_is_bigger(A,B):
i = 0
ans = []
if len(A) > len(B):
ans.append('A')
bigger = A
smaller = B
if len(B) > len(A):
ans.append('B')
bigger = B
smaller = A
if len(A) == len(B):
while len(ans) == 0 and i < max(len(A), len(B)):
if A[i] > B[i]:
ans.append('A')
bigger = A
smaller = B
break
if B[i] > A[i]:
ans.append('B')
bigger = B
smaller = A
break
i += 1
while len(ans) == 0:
ans = 'same'
bigger = A
smaller = B
return ans, bigger, smaller
ans, bigger, smaller = which_is_bigger(A, B)
A.reverse()
B.reverse()
for i in range(len(bigger) - len(smaller)):
smaller.append(0)
C = [0 for i in range(len(bigger))]
t = 0
for i in range(len(bigger)):
if bigger[i] - smaller[i] - t >= 0:
C[i] = bigger[i] - smaller[i] - t
t = 0
else:
C[i] = bigger[i] - smaller[i] - t + 10
t = 1
C.reverse()
while C[0] == 0 and len(C) > 1:
del C[0]
if ans[0] == 'B':
C.insert(0, '-')
print(''.join(map(str, C)))