#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Apr 14 09:22:54 2018
@author: vicky
"""
#两个大数相加
#大数相加不能直接使用基本的int类型,因为int可以表示的整数有限,不能满足大数的要求。可以使用字符串来表示大数,模拟大数相加的过程。
#思路:
#1.对齐两个字符串,即短字符串的高位用‘0’补齐,便于后面的相加;
#2.反转两个字符串,便于从低位到高位相加和最高位的进位导致和的位数增加;
#3.把两个正整数相加,一位一位的加并加上进位。
#def bigsum1(L1,L2):
# max_len = max(len(L1), len(L2)) #最大长度
# #str.zfill(width):返回指定长度的字符串,原字符串右对齐,前面填充0
# l1 = L1.zfill(max_len) #短字符串的高位用‘0’补齐
# l2 = L2.zfill(max_len)
#
# a1 = list(l1)
# a2 = list(l2)
# a3 = [0] * (max_len + 1)
#
# for index in range(max_len - 1, -1, -1): #倒序相加
# index_sum = a3[index + 1] + int(a1[index]) + int(a2[index])
# less = index_sum - 10
# a3[index + 1] = index_sum % 10
# a3[index] = 1 if less >= 0 else 0
#
# if(a3[0] == 0): #去掉首位的0
# a3.pop(0)
#
# a33 = [str(i) for i in a3]
# #print(''.join(a33))
# ans=''.join(a33)
# return ans
#
#
##L1 = "2649821731631836529481632803462831616487712734074314936141303241873417434716340124362304724324324324324323412121323164329751831"
##L2 = "1232141045091731748365195814509145981509438583247509149821493213241431431319999999999999999999999999999999999999999999999999341344779"
#L1='123'
#L2='100'
#print(bigsum1(L1,L1))
def bigsum2(s1,s2):
L1=[] #把输入的string中的每个数字int转换到list中存放
L2=[]
for i in range(0,len(s1)):
L1.append(int(s1[i]))
for i in range(0,len(s2)):
L2.append(int(s2[i]))
if(len(s1)>len(s2)): #短字符串的末尾用‘0’补齐,使得L1,L2的长度相同
for i in range(len(s1)-len(s2)):
L2.append(0)
elif(len(s1)<=len(s2)):
for i in range(len(s2)-len(s1)):
L1.append(0)
for i in range(len(L1)): #对应位置相加
L1[i]=L1[i]+L2[i]
A=B=len(L1)-1
while A>0: #十进制过程,倒序从后向前找大于和10的进一
if((L1[A])/10)>=1: # or if((L1[A]//10)>0) #//返回商的整数部分
L1[A]=L1[A]%10 #取余数
L1[A-1]=L1[A-1]+1 #进1
A-=1
if(L1[0] == 0): #去掉首位的0
L1.pop(0)
ans=str()
for i in range(B+1):
ans=ans+str(L1[i])
#print(ans)
return ans
#s1='123'
#s2='100'
s1 = "2649821731631836529481632803462831616487712734074314936141303241873417434716340124362304724324324324324323412121323164329751831"
s2 = "1232141045091731748365195814509145981509438583247509149821493213241431431319999999999999999999999999999999999999999999999999341344779"
print(bigsum2(s1,s1))