大数相加

x1=100000009086
x2=34578504440
import math
#将大数分解存进数组
def fun1(x):
  strx = str(x)
  list = []
  for i in  range(len(strx)):
    a=x%10
    list.append(a)
    x=int(x/10)
  return  list
#对比两个大数的长度,不足的高位补0
def addlen(list1,list2):
  a = len(list1)
  b = len(list2)
  c = int(math.fabs(a - b))
  if a>b:
     for i in range(c) :
       list2.append(0)
  elif a<b:
     for i in range(c):
        list1.append(0)
  else:
     pass
  return list1,list2
#高位进位
def carry(list):
   for  i in reversed(range(len(sum))):
      if sum[i]>9:
        sum[i]=sum[i]-10
        sum[i-1]+=1
   return  sum
#将数组组成num
def  number(list):
    num=0
    for i in range(len(list)):
        num=num*10+list[i]
    return num
#主函数 对应位置相加
list1=fun1(x1)
list2=fun1(x2)
list1,list2=addlen(list1,list2)
sum=[]
for i in reversed(range(len(list1))):
     for j in reversed(range(len(list2))):
        if i==j:
            sum.append(list1[i]+list2[i])
sum=carry(sum)
print(number(sum))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值