题解 | #高精度整数加法#
高精度整数加法
https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
str1 = input().strip()
str2 = input().strip()
length = min(len(str1), len(str2))
# 规定str1是长串,str2是短串
if len(str2) > length:
str1, str2 = str2, str1
# 对于较短的字符串前面补0
str2 = (len(str1) - length) * "0" + str2
# 给字符串进行逆序
str1 = str1[::-1]
str2 = str2[::-1]
# 设置进位数组
lsts = []
my_str = ""
for i in range(len(str1)):
if i == 0:
m = int(str1[i]) + int(str2[i])
else:
m = int(str1[i]) + int(str2[i]) + lsts[i - 1]
if m >= 10:
lsts.append(1)
m -= 10
my_str += str(m)
else:
lsts.append(0)
my_str += str(m)
# 判断高位是否有进位
my_str = my_str[::-1]
if int(str1[-1]) + int(str2[-1]) >= 10:
my_str = "1" + my_str
print(my_str)
查看19道真题和解析