"""
逆序相加
给定两个非空数组,表示两个非负的整数。
每个数组每位数字都是按照逆序的方式存储的,
并且每个节点只能存储一位数字。
将两个数相加,并以相同形式返回一个表示和的数组,
"""
def add(l1, l2):
"""
两个列表形式的整数相加。
参数:
l1 -- 第一个整数的列表形式
l2 -- 第二个整数的列表形式
返回:
两个整数相加的结果的列表形式
"""
# 初始化结果列表和进位变量
result = []
carry = 0
# 确保较短的列表在前,较长的列表在后,以便统一处理
short, long = (l1, l2) if len(l2) > len(l1) else (l2, l1)
# 遍历较短列表中的每个元素,进行加法运算
for i in range(len(short)):
# 当前位的值等于较短列表的当前位、较长列表的当前位和进位之和
cur = short[i] + long[i] + carry
# 计算新的进位
carry = cur // 10
# 将当前位的余数添加到结果列表中
result.append(cur % 10)
# 处理完较短列表后,将较长列表剩余的部分追加到结果列表中
start = i + 1
result += long[start:]
# 如果还有进位,需要对结果列表的适当位置进行调整
result[start] += carry
# 返回结果列表
return result
a = [6, 7, 8]
b = [2, 3, 4, 5, 6]
print(add(a, b))
评论前必须登录!
注册