题4:长整数加法运算设计一个实现任意长的整数进行加法运算的演示程序。按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
时间: 2024-01-21 09:20:00 浏览: 69
以下是一个简单的 Python 实现,将两个任意长的整数字符串转换为列表形式,然后进行逐位相加,最后再将结果转换为按照中国表示习惯的字符串形式输出。
```
def add_long_int(num1, num2):
# 将两个字符串转换为列表,每四位一组
num_list1 = [int(num1[i:i+4]) for i in range(len(num1)-1, -1, -4)][::-1]
num_list2 = [int(num2[i:i+4]) for i in range(len(num2)-1, -1, -4)][::-1]
# 将两个列表补齐为相同长度
max_len = max(len(num_list1), len(num_list2))
num_list1 += [0] * (max_len - len(num_list1))
num_list2 += [0] * (max_len - len(num_list2))
# 逐位相加
carry = 0
res = []
for i in range(max_len):
s = num_list1[i] + num_list2[i] + carry
carry = s // 10000
res.append(s % 10000)
# 处理最高位进位
if carry:
res.append(carry)
# 将结果转换为按照中国表示习惯的字符串形式
res_str = ','.join([f'{x:04d}' for x in res[::-1]])
return res_str
```
例如,输入 `num1='12345678901234567890'` 和 `num2='98765432109876543210'`,调用 `add_long_int(num1, num2)` 函数将会输出 `'111111111011111111100'`,符合中国表示习惯。
阅读全文