给定两个以字符串形式表示的非负整数num1和num2,返回他们的乘积,乘积以字符串形式
时间: 2023-10-24 12:07:47 浏览: 101
两个大数相乘-字符串实现
5星 · 资源好评率100%
表示。
好的,让我思考一下。这个问题可以通过模拟手算乘法的过程来实现。我们可以从 num2 的末尾开始,逐位与 num1 相乘,将结果相加得到最终的乘积。具体实现可以使用一个数组来记录每次乘积的结果,最后将数组转换为字符串即可。以下是代码实现:
```python
def multiply(num1: str, num2: str) -> str:
if num1 == "0" or num2 == "0":
return "0"
n1, n2 = len(num1), len(num2)
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, p2 = i+j, i+j+1 # 在 res 中对应的位置
sum = mul + res[p2] # 加上之前的结果
res[p2] = sum % 10
res[p1] += sum // 10
# 转换为字符串
ans = ""
for num in res:
if num == 0 and not ans: # 去掉前导零
continue
ans += str(num)
return ans
```
希望这个回答可以帮助到您!
阅读全文