蓝桥杯—python 高精度加法

问题描述
  输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
输入格式
  输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。
输出格式
  输出一行,表示a + b的值。

x = int(input(""))
y = int(input(""))

a = []
b = []
c = []  #存储加法结果

while x != 0:     #把a倒叙转化为数字列表,个位在前,以此类推
    a.append( x % 10)
    x //= 10
    
while y != 0:    #把b倒叙转化为数字列表,个位在前,以此类推
    b.append( y % 10)
    y //= 10
    

if(len(a)> len(b)):  #填充a的长度,使len(a) == len(b)
    for i in range(len(a)-len(b)):
        b.append(0)
elif(len(a)<len(b)):   #填充b的长度,使len(a) == len(b)
     for i in range(len(b)-len(a)):
        a.append(0)
     
for i in range(len(a)-1):    #计算n-1位数相加
    sum = a[i] + b[i]
    if(sum >= 10):
        c.append(sum % 10)   #产生进位
        a[i+1] = a[i+1] + 1   #下一位数+1
    else:
        c.append(sum)
        
sum = a[-1] + b[-1]      #计算最后一位数相加
if(sum >= 10):     #产生进位
    c.append(sum%10)   #添加最后一位数的个位
    c.append(sum//10)  #添加最后一位数的十位数
else:
    c.append(sum)    
         
for i in c[::-1]:
    print(i,end="")    #数字列表转换为数字,倒叙输出。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值