实现代码如下
# 2022.1.5 # 蓝桥杯基础练习 # 试题名称:高精度加法 # 问题描述:输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 ist1 = list(input()) ist2 = list(input()) ist1 = list(map(int, ist1)) # 将字符类型的元素转化为整数类型 ist2 = list(map(int, ist2)) ist1 = ist1[::-1] # 列表逆置 ist2 = ist2[::-1] if(len(ist1) > len(ist2)): ist2 = ist2 + [0]*(len(ist1) - len(ist2)) # 两个整数位数不同,少的用0补充 else: ist1 = ist1 + [0]*(len(ist2) - len(ist1)) # 两个整数位数不同,少的用0补充 n = [len(ist1), len(ist2)] sum = [0] * max(n) + [0] # 两个n位整数的和可能是n+1位的整数 for i in range(max(n)): sum[i] = ist1[i] + ist2[i] # 个位和个位相加,十位和十位相加... for i in range(max(n)+1): # 在这个循环中,进行进位 if(sum[i] >= 10): sum[i+1] = sum[i+1] + 1 # 逢十进一 sum[i] = sum[i] - 10 sum = sum[::-1] # 列表再逆置,变成正常顺序 if(sum[0] == 0): # 因为sum有n+1位,所以第一个元素有可能为0 sum.pop(0) # 如果为0,则删除 for i in sum: print(i,end="") # 打印输出结果
需要注意的点: