Python 【问题描述】 编写程序实现两个超长正整数
时间: 2023-05-18 20:03:17 浏览: 69
用python编写两个正整数的最大公约数和最小公倍数的小程序
的加法运算,要求不能使用 Python 自带的高精度计算库。请问,你有什么思路或者实现方法吗?
【回答】可以使用字符串来表示超长正整数,然后按位相加,注意进位即可。具体实现可以参考以下代码:
def add_long_int(num1, num2):
len1, len2 = len(num1), len(num2)
if len1 < len2:
num1, num2 = num2, num1
len1, len2 = len2, len1
res = []
carry = 0
for i in range(1, len2 + 1):
s = int(num1[-i]) + int(num2[-i]) + carry
carry = s // 10
res.append(str(s % 10))
for i in range(len2 + 1, len1 + 1):
s = int(num1[-i]) + carry
carry = s // 10
res.append(str(s % 10))
if carry:
res.append(str(carry))
return ''.join(res[::-1])
num1 = '123456789012345678901234567890'
num2 = '987654321098765432109876543210'
print(add_long_int(num1, num2)) # 1111111111111111111111111111110
注意,这里的加法运算是按照从低位到高位的顺序进行的,最后需要将结果翻转过来。
阅读全文