python 实现两个大数相加
可以使用字符串来表示大数,然后从字符串的末尾开始逐位相加,注意进位的问题。
以下是示例代码:
def add_big_numbers(num1, num2):
# 将两个字符串转换为列表,方便逐位相加
num1_list = list(num1)
num2_list = list(num2)
# 如果两个字符串长度不同,则在短的字符串前面补零
while len(num1_list) < len(num2_list):
num1_list.insert(0, '0')
while len(num2_list) < len(num1_list):
num2_list.insert(0, '0')
# 逐位相加,注意进位
result = []
carry = 0
for i in range(len(num1_list)-1, -1, -1):
digit_sum = int(num1_list[i]) + int(num2_list[i]) + carry
carry = digit_sum // 10
result.insert(0, str(digit_sum % 10))
if carry:
result.insert(0, str(carry))
# 将列表转换为字符串并返回
return ''.join(result)
可以测试一下:
num1 = '123456789012345678901234567890'
num2 = '987654321098765432109876543210'
print(add_big_numbers(num1, num2)) # 输出: 1111111111111111111111111111110
原文地址: https://www.cveoy.top/t/topic/AJr 著作权归作者所有。请勿转载和采集!