互联网面试宝典

您现在的位置是: 首页 > 数据结构

问题详情

编写一个函数用于计算两个大整数的乘积。

面试宝典 2023-06-12 Web前端开发工程师 26
以下是Python代码实现:

def multiply(num1, num2):
n1 = len(num1)
n2 = len(num2)
# 用一个数组res来存放乘积,初始化每一位都是0
res = [0] * (n1 + n2)
# 从后往前计算乘积,进位问题追加到下一位相加
for i in range(n1-1, -1, -1):
for j in range(n2-1, -1, -1):
mul = int(num1[i]) * int(num2[j])
p1 = i+j
p2 = i+j+1
sum = mul + res[p2]
res[p1] += sum // 10
res[p2] = sum % 10
#去掉res前面多余的0
i = 0
while i < len(res) and res[i] == 0:
i += 1
res = res[i:]
#将数组转换回字符串
return "".join(map(str, res)) if res else "0"

#测试代码
print(multiply("123", "456")) #输出为"56088"