""" 兩個字符串相加 模擬兩個大整數相加,但是不能直接相加,採用每一位相加的方式 """ 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站視頻