兩個純數字字符串相加Python實現版

"""
兩個字符串相加
模擬兩個大整數相加,但是不能直接相加,採用每一位相加的方式
"""


def add_large_numbers(num1, num2):
    # 反轉字符串,方便從低位開始相加
    num1 = num1[::-1]
    num2 = num2[::-1]

    # 初始化結果列表和進位
    result = []
    carry = 0

    # 逐位相加
    i, j = 0, 0
    while i < len(num1) or j < len(num2) or carry:
        digit1 = int(num1[i]) if i < len(num1) else 0
        digit2 = int(num2[j]) if j < len(num2) else 0
        total = digit1 + digit2 + carry
        carry = total // 10
        digit = total % 10
        result.append(str(digit))
        i += 1
        j += 1

        # 反轉結果列表並拼接成字符串
    return ''.join(result[::-1])


if __name__ == '__main__':
    num1 = "123456789012345678901234567890"
    num2 = "987654321098765432109876543210"
    print(add_large_numbers(num1, num2))

  

 

借鑑自B站視頻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章