高精度

引言

高精度作为c++里面的一种基础算法,学好它也是必然的,有很多人说高精度只要会背代码就行了。

我认为只要理解了高精度,就会觉得它还是简单的。

什么是高精度

高精度是一种数据范围超级大的数,然后进行相加,相减,相乘,相除…的操作。

高精度加法

读入

首先我们要考虑一个问题,就是怎么读入数据范围超级大的数。想想看,是不是字符串

那么我们有两种选择,一个是字符数组也就是char a[]; 还有一个是字符串 string a;

两个都差不多,但是字符串不能用str的函数,所以我这里选择的是字符数组。

然后用cin读入。

处理

我们还要考虑的是,怎么让他们相加,总不可能两个字符数组相加吧。

我们这里利用了小学二年级的做法,笔算。

首先将他们转换为整数,存到数组里面,我们其实还有考虑一个问题:

万一数位不一样怎么办?

如果是123+23怎么办(这个数据好算一点,真正的高精度数据有点大)?

小学二年级怎么教的?

个位和个位对齐

那么我们可以把数组的第一位存放个位,最后在倒序输出。

这段代码可以这样写:

-------- 本文结束 感谢阅读 --------