大数相加 简单实现 Python 版本

上一次写这种类型的题目 应该还是在读书的时候啦
今天偶然同学问一段python代码是啥意思 看了看 有点长
运行一下 像是大数相加 然后突然个想法 想试下 就写了一小段代码 运行了一下发现结果一样 应该行得通 记录一下

就是将2个数组 每个数组对应的位置的数字相加+新数组当前位置的值(默认是0)

放到新的数组对应的位置 如果大于0新数组前一位变成1 当前位置%10

代码如下
import time
L1="2649821731631836529481632803462831616487712734074314936141303241873417434716340124362304724324324324324323412121323164329751831"
L2="1045091731748365195814509145981509438583247509149821493213241431431319999999999999999999999999999999999999999999999999341344779"

startTime=time.time()
#长度强行扭转到一致 不够前面补0
max_len= len(L1) if len(L1)>len(L2) else len(L2)
l1=L1.zfill(max_len)
l2=L2.zfill(max_len)

a1=list(l1)
a2=list(l2)
#长度一致 每个对应的位置的相加的和 %10 前一位补1 如果>10 否则0  99+99最大3位所以多一位
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):
    a3.pop(0)
a33=[str(i) for i in a3]
print(''.join(a33))
print('耗时{0}ms'.format(time.time()-startTime))

代码位置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,425评论 25 708
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,760评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,173评论 19 139
  • 今天的分享很短。 读书,真读书,用心用脑,真正促进自己成长,你还在等什么?做!
    像话读书爻阅读 331评论 2 4
  • 郭亚锋 焦点六期 坚持分享第19天 最近感觉自己好像又退化了,每天忙忙碌碌又没有什么成效。儿子每天忙...
    自由飞翔的蜗牛阅读 253评论 0 0

友情链接更多精彩内容