02981: 大整数加法
implementation, http://cs101.openjudge.cn/practice/02981
求两个不超过200位的非负整数的和。
输入
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输出
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入
22222222222222222222
33333333333333333333样例输出
55555555555555555555来源:程序设计实习2007
python
print(int(input()) + int(input()))2020fall-cs101,王康安。练习字符串解法。
python
s1 = list(reversed(list(map(int, list(input())))))
s2 = list(reversed(list(map(int, list(input())))))
if len(s1) > len(s2):
s2 += [0]*(len(s1) - len(s2))
else:
s1 += [0]*(len(s2) - len(s1))
sum = [0]*(len(s1) + 1)
for i in range(len(s1)):
sum[i+1] += (sum[i]+s1[i]+s2[i])//10
sum[i] = (s1[i]+s2[i]+sum[i])%10
sum.reverse()
cur = 0
while cur<len(sum) and sum[cur] == 0:
cur += 1
out = ''
if cur == len(sum):
print(0)
else:
for i in range(cur,len(sum)):
out += str(sum[i])
print(out)