两个大数相加,要求不能使用int类型相加。
思路:两个数据分别取出最后一位,转成int类型相加。代码如下。
def sum_str(a: str = "123", b: str = "9"):
sum_result = []
length = max(len(a), len(b))
is_add = False # 是否向前进一位
for index in range(-1, -length - 1, -1):
x = 0 if index < -len(a) else int(a[index])
y = 0 if index < -len(b) else int(b[index])
r = x + y
if is_add:
r += 1
if r <= 9:
is_add = False
sum_result.append(r)
else:
# 大于10向前进一位
is_add = True
sum_result.append(r % 10)
sum_result.reverse()
print("".join(str(x) for x in sum_result))
if __name__ == '__main__':
sum_str()
该博客介绍了一种算法,用于在不使用int类型的情况下对两个大数进行相加。通过从低位到高位逐位相加,并处理进位,实现了大数相加的功能。代码中,遍历字符串的逆序,对每一位进行运算,并根据进位情况进行处理,最终得到结果并反转回正确的顺序。

1208

被折叠的 条评论
为什么被折叠?



