使用数组完成两个超长(长度小于100)正整数的乘法。
时间: 2024-03-20 07:42:46 浏览: 17
可以使用竖式乘法的方法,将每一位的乘积放入相应的数组元素中,最后将数组中每个元素进行累加得到结果。以下是实现的代码示例:
```python
def multiply(num1, num2):
# 将两个数倒序存入数组
arr1 = list(map(int, str(num1)[::-1]))
arr2 = list(map(int, str(num2)[::-1]))
# 初始化结果数组
res = [0] * (len(arr1) + len(arr2))
# 计算乘积并存入结果数组
for i in range(len(arr1)):
for j in range(len(arr2)):
res[i+j] += arr1[i] * arr2[j]
# 处理进位
carry = 0
for i in range(len(res)):
res[i] += carry
carry = res[i] // 10
res[i] %= 10
# 去掉前导零并将结果倒序输出
while len(res) > 1 and res[-1] == 0:
res.pop()
return ''.join(map(str, res[::-1]))
```
其中,`num1` 和 `num2` 分别为两个需要相乘的正整数,函数返回它们的乘积。函数首先将两个数倒序存入数组 `arr1` 和 `arr2` 中,然后初始化结果数组 `res`。接着,使用两层循环计算每一位的乘积,并将其存入相应的结果数组元素中。最后,处理进位并去掉前导零,将结果倒序输出即可。