题解 | #高精度整数加法#
高精度整数加法
https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
num1 = input()
num2 = input()
#第一步,使两个整数长度对齐
new_num1 = ''
new_num2 = ''
if len(num1) < len(num2):
new_num1 = num1.rjust(len(num2),'0')
new_num2 = num2
elif len(num1) > len(num2):
new_num1 = num1
new_num2 = num2.rjust(len(num1),'0')
else :
new_num1 = num1
new_num2 = num2
#第二步,逐位相加
list1 = [int(i) for i in new_num1]
list2 = [int(k) for k in new_num2]
list3 = []
tab = 0 #记录十进一
for j in range(len(new_num1) - 1,-1,-1): #倒着循环
x= list1[j] + list2[j] + tab #每一位的和
tab = 0 #十进一的1加完后记得恢复为0
if x >= 10: #如果每位的和(含十进一的1)超过10,x为个位数,tab为十位数,也就是1
x = x - 10
tab = 1
list3.append(x)
if j == 0 and tab != 0: #最后一位,也就是j为0的时候,且tab不为0的时候,把tab加入列表
list3.append(tab)
list4 = list3[::-1] #由于append是按顺序加入列表,所以这里需要给他倒序一下
list5 = [str(n) for n in list4] #列表每个元素转为字符串格式,合并输出
print(''.join(list5))
#悬赏#