本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于腾讯云,作者:算法与编程之美。

问题描述

输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。

算法描述

由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。

定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。

计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。

最后将C输出即可。

输入格式

输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。

输出格式

输出一行,表示a + b的值。

样例输入

20100122201001221234567890

2010012220100122

样例输出

20100122203011233454668012

解决方案

根据题中的算法描述可以大致的清楚做题步骤。

(1)既然题目中说了不能用标准的数据类型来存储数字,所以在写输入的代码时就需要注意,不能直接a = int(input),而是直接在输入的时候就将数据转化为列表。就像这样A = list(input)

(2)输入写好了过后,再看题目,要求两个数的每一位相加,就像笔算一样,所以就需要遍历两个数组的每一位数,如果采用两个for的形式的话,会出现很多重复的情况,而且时间复杂度也为Tn=O(n*n)。自然是很麻烦的,所以就需要用到python的内置函数zip(),这样就可以直接同时遍历两个数组。然后再根据算法描述的做法,将加得的数十位个位分别存储。

(3)写好以上步骤后会发现zip()函数只会遍历到其中最短的一个数组结束后就停止了。也就是说只有两个数字相同位数时才可行。这时就需要在遍历前对两个数组处理一下,将短的数组用0来填充至一样长。这样就可以在不改变原数大小的情况下使zip()函数能遍历完整了。

根据以上步骤,即可将此题解决。

代码示例:

A =list(input())

B=list(input())

l= abs(len(A)-len(B))for i inrange(l):if len(A)>len(B):

B.insert(0,0)else:

A.insert(0,0)

C=[]

r=0for x,y in zip(A[::-1],B[::-1]):

ss= int(x)+int(y)+rif ss>=10:

r= ss//10

else:

r=0

C.insert(0,str(ss%10))

C.insert(0,str(r))print(int(''.join(C)))

结语

有时在处理问题的时候,容易将问题复杂化,这时就不妨需要换另一种思维看看,也许就能眼前一亮。

END

python实现高精度加法_蓝桥杯-Python-高精度加法相关推荐

  1. 蓝桥杯 python 青少年 真题_蓝桥杯Python真题解析

    今天分析一道蓝桥杯大赛Python组的真题<核桃的数量>. 题目内容:小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班.为鼓舞士气,小张打算给每个组发一袋核桃(据传言核桃能补脑) ...

  2. python 进位_蓝桥杯-Python-高精度加法

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:算法与编程之美. 问题描述 输入两个整数a和b,输出这 ...

  3. python分苹果问题_蓝桥杯--算法提高--VIP--分苹果题目(差分数组)

    1. 问题描述: 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1..N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果. 最后老师想知道每个小朋 ...

  4. 【蓝桥杯选拔赛真题07】python输出乘积 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

    目录 python输出乘积 一.题目要求 1.编程实现 2.输入输出 二.解题思路

  5. 【蓝桥杯选拔赛真题01】python输出字符串 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

    目录 python字符串输出 一.题目要求 1.编程实现 2.评分标准

  6. 【蓝桥杯选拔赛真题15】python绘制扇子 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

    目录 python绘制扇子 一.题目要求 1.编程实现 2.评分标准 二.解题思路

  7. 【蓝桥杯选拔赛真题29】python堆砖块 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

    目录 python堆砖块 一.题目要求 1.提示信息 1.编程实现 2.输入输出

  8. 【蓝桥杯选拔赛真题22】python输出数据 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

    目录 python输出数据 一.题目要求 1.编程实现 2.输入输出 3.评分标准

  9. 【蓝桥杯选拔赛真题02】python奇偶数 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

    目录 python奇偶数 一.题目要求 1.编程实现 2.评分标准

最新文章

  1. Spring Boot + Vue 如此强大?
  2. Android 多线程之可以重复启动与停止的服务
  3. 进一步考察与UI相关的安全漏洞-下
  4. 使用UIImageView实现图像拖动、缩放等
  5. redhat9Linux解压gz,linux (redhat9)下subversion 的安装
  6. gcc编译出现:error: dereferencing pointer to incomplete type
  7. Azure虚拟机部署Skype for Business Server 三、部署Skype前端服务器
  8. 淘宝直通车现在每天烧多少钱,500元直通车能开多久?
  9. 漫话:如何给女朋友解释为什么12306会用户信息泄露(上)——密码篇
  10. java 米转换公里_java中把米换算成公里的代码是什么?
  11. 实战技法 - 短线操盘 (1)
  12. 面稀土,战码家(二)
  13. 借助于经济学数学计算机科学,借助于经济学、数学、计算机科学、统计学、概率论以及帮助决策的理论来进行逻辑分析和推论。这一概...
  14. 险些“B轮死”的小猪短租,如何穿越了融资生死线
  15. 短信验证码有什么限制?
  16. kafka基础入门(4):kafka消费者
  17. python函数中的嵌套函数
  18. Python爬虫获取迅雷会员帐号
  19. 本特利探头330103-00-12-50-02-00本特利联接电缆9571-20本特利传感器9200-03-02-10-00
  20. 用PHP语言开发的轻量级开源YzmCMS V6.5 正式版介

热门文章

  1. Oracle新建用户、角色,授权,建表空间
  2. Kwort Linux 3.5 RC1 发布
  3. oracle tips ---------keep update
  4. Linux 命令(56)—— telnet 命令
  5. C++函数调用时堆栈的变化情况
  6. select非group by字段的方法
  7. ACM-树重心的性质及动态维护
  8. 解决:用PivotGridControl 与 chartControl 配合使用,Series最大只显示10条
  9. springmvc 的请求处理过程(精编)
  10. 希捷四十载:如何做好一家非常规存储公司?