两个大数相加,要求不能使用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()