前言:
此刻姐妹们对“python 最大整数”大约比较注意,咱们都想要剖析一些“python 最大整数”的相关文章。那么小编在网上收集了一些有关“python 最大整数””的相关资讯,希望兄弟们能喜欢,小伙伴们一起来了解一下吧!超过一定长度的整数相加会溢出,那怎么实现超大整数数相加呢?
可能有人说,直接相加不行么,可能真不行,超过了类型长度会溢出
答案是用字符串来表示大整数,对齐位数逆排序后,按位相加,处理进位,就可以实现.
具体算法实现,请看代码.
big_a="919999999999999999999999999999999999990"big_b="99999999999999999999999999999999999999999999999999"#高位补0if len(big_a)>len(big_b): need_zero=len(big_a)-len(big_b) big_b="{}{}".format(r"0"*need_zero,big_b)elif len(big_a)<len(big_b): need_zero=len(big_b)-len(big_a) big_a="{}{}".format(r"0"*need_zero,big_a)sum=[0]*(len(big_a)+1) #加上是为了解决高位相加有进位# 翻转字符串big_a=list(big_a[::-1])big_b=list(big_b[::-1])# 执行高位相加for i,v in enumerate(big_a): tmp_add=int(big_b[i])+int(v)+sum[i] if tmp_add>=10: #有进位 q,r=divmod(tmp_add,10) sum[i]=r #余数 sum[i+1]=q # 商 else: sum[i]=tmp_add# 重新翻转回来sum=sum[::-1]print("".join(str(v) for v in sum))
100000000000919999999999999999999999999999999999989
可以说是非常简单了
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python 最大整数 #python最大整数部分