废话不多说,直接上AC题解
传送门
def cmp(a, b):
if len(a) > len(b):
return 1
elif len(a) < len(b):
return -1
else:
for i in range(len(a)):
if a[i] > b[i]:
return 1
elif a[i] < b[i]:
return -1
return 0
def sub(a, b):
res = []
a = list(a[::-1])
b = list(b[::-1])
borrow = 0
for i in range(len(a)):
digit_a = int(a[i])
digit_b = int(b[i]) if i < len(b) else 0
digit_a -= borrow
if digit_a < digit_b:
digit_a += 10
borrow = 1
else:
borrow = 0
res_digit = digit_a - digit_b
res.append(str(res_digit))
while borrow > 0:
i += 1
if i >= len(a):
res.append('9')
else:
digit_a = int(a[i]) - borrow
if digit_a < 0:
digit_a += 10
borrow = 1
else:
borrow = 0
res.append(str(digit_a))
res = res[::-1]
while len(res) > 1 and res[0] == '0':
res.pop(0)
return ''.join(res)
def toh(s):
hex_digits = '0123456789ABCDEF'
num = int(s)
if num == 0:
return '0'
hex_str = ''
while num > 0:
hex_str = hex_digits[num % 16] + hex_str
num = num // 16
return hex_str
a = input().strip()
b = input().strip()
if cmp(a, b) == 1:
diff = sub(a, b)
else:diff = sub(b, a)
hex_result = toh(diff)
print(hex_result)