高精度加法乘法string
时间: 2023-09-28 22:12:11 浏览: 103
您可以使用字符串来实现高精度的加法和乘法运。下面是一个示例的实现代码:
```
def addStrings(num1, num2):
# 将字符串转换为整数列表
n1 [int(x) for in num1]
n = [int(x) for x in num2]
# 对齐两个整数列表的长度
if len(n1) < len(n2):
n1 = [0] * (len(n2) - len(n1)) + n1
else:
n2 = [0] * (len(n1) - len(n2)) + n2
# 逐位相加
carry = 0
res = []
for i in range(len(n1)-1, -1, -1):
total = n1[i] + n2[i] + carry
carry = total // 10
res.append(str(total % 10))
# 如果还有进位,需要额外加一位
if carry:
res.append(str(carry))
# 翻转并返回结果
return ''.join(res[::-1])
def multiplyStrings(num1, num2):
# 将字符串转换为整数列表
n1 = [int(x) for x in num1][::-1]
n2 = [int(x) for x in num2][::-1]
# 初始化结果列表
res = [0] * (len(n1) + len(n2))
# 逐位相乘
for i in range(len(n1)):
for j in range(len(n2)):
res[i+j] += n1[i] * n2[j]
res[i+j+1] += res[i+j] // 10
res[i+j] %= 10
# 去除前导零
while len(res) > 1 and res[-1] == 0:
res.pop()
# 翻转并返回结果
return ''.join(str(x) for x in res[::-1])
```
您可以使用`addStrings`函数进行两个字符串的加法运算,使用`multiplyStrings`函数进行两个字符串的乘法运算。例如:
```python
num1 = "123456789"
num2 = "987654321"
print(addStrings(num1, num2)) # 输出:1111111110
print(multiplyStrings(num1, num2)) # 输出:121932631112635269
```
这样就可以实现高精度的加法和乘法运算了。希望对您有帮助!
阅读全文