题解 | #高精度整数加法#

高精度整数加法

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))

#悬赏#
全部评论

相关推荐

迷茫的大四🐶:💐孝子启动失败,改为启动咏鹅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务