第一章(二)

高精度

高精度算法分为四类:+ - * / ,就是一个位数特别多的数与另一个数运算
A + B (大写表示位数特别多,比如100万位,小写表示正常的数)
A - B
A * a
A / a
(A * B 和 A / B 出现的非常少,不讲)
java自带大数类,所以其实可以不学高精度算法,Python默认就是无限位,也不用学,C++就得自己实现
(1)大整数的存储
数组的第一位存个位数,高位的往后存,这样进位的时候只需要在数组后面+1,如果高位的存在数组前面,那么进位的时候需要数组前面+1,这样需要改动整个数组
(2)手动模拟加法运算
————————————————————————————————————————————
例题:蓝桥杯–算法提高 高精度加法
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-263到263。要想计算更加规模的数,就要用软件来扩展了,比如用数组或字符串来模拟更多规模的数及共运算。
  现在输入两个整数,请输出它们的和。
输入格式
  两行,每行一个整数,每个整数不超过1000位
输出格式
  一行,两个整数的和。
样例输入
15464315464465465
482321654151
样例输出
15464797786119616
数据规模和约定
  每个整数不超过1000位

import java.math.BigInteger

猜你喜欢

转载自blog.csdn.net/QinLaoDeMaChu/article/details/105728109