可以使用字符串来表示大数,然后从字符串的末尾开始逐位相加,注意进位的问题。

以下是示例代码:

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
python 实现两个大数相加

原文地址: https://www.cveoy.top/t/topic/AJr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录