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

高精度整数加法

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)

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务