原题链接:蓝桥杯基础练习VIP-高精度加法
解题思路:
使用两个列表分别存储两个大整数,位数少的左侧补零,额外开辟一个列表存储每位相加的结果,然后做进位处理
参考代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | def loop(x,y): global X,Y,L x,y = str (x), str (y) if len (x)> = len (y): y = ( len (x) - len (y)) * '0' + y else : x = ( len (y) - len (x)) * '0' + x X.extend(x) Y.extend(y) for i in range ( len (X) - 1 , - 1 , - 1 ): L.append( int (X[i]) + int (Y[i])) for i in range ( len (L) - 1 ): L[i + 1 ] = L[i + 1 ] + L[i] / / 10 L[i] = L[i] % 10 L1 = list ( str (L[ - 1 ])) L.pop() for i in range ( len (L1) - 1 , - 1 , - 1 ): L.append(L1[i]) while True : try : a = str ( input ()) b = str ( input ()) X = list () Y = list () L = list () loop(a,b) for i in range ( len (L)): L[i] = str (L[i]) print (''.join(L[:: - 1 ])) except : break |
0 分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复