超长正整数的加法,设计一个程序实现两个任意长的整数求和运算
时间: 2023-05-27 11:07:35 浏览: 104
可以采用字符串表示超长正整数,然后从个位开始逐位相加,进位则将进位值加到下一位的运算中。最终得到的结果也是一个字符串,需要注意的是可能需要将结果字符串前面的0去掉。
以下是Python实现代码:
```python
def add_long_int(a, b):
a = a[::-1] # 将字符串反转,方便从个位开始相加
b = b[::-1]
result = []
carry = 0 # 进位值
i = 0
while i < len(a) or i < len(b):
ai = int(a[i]) if i < len(a) else 0 # 补0
bi = int(b[i]) if i < len(b) else 0
s = ai + bi + carry
result.append(str(s % 10))
carry = s // 10
i += 1
if carry > 0:
result.append(str(carry))
return ''.join(result[::-1]).lstrip('0') or '0' # 反转回来并去掉前导0,注意0的情况
```
测试代码:
```python
print(add_long_int('12345678901234567890', '98765432109876543210')) # 111111111111111111100
print(add_long_int('123456789012345678901234567890', '987654321098765432109876543210')) # 111111111111111111101111111101111111011111110
```