高精度算法(减法)
- 减法,是一个会出现负数的操作,我们在高精度算法里我们需要先对其进行判断俩个高精度整数谁更大这样我们可以判断输出的时候是正数还是负数,我们倘若是负数我们需要手动进行’-’的操作。
2.判断大小函数的实现
这段代码就是在对我们输入的俩个高精度数组进行比较,我们先要比较的俩个高精度数组的位数,如果位数不相同我们需要返回的是他俩个的比较判断语句。
倘若相同,我们就要从俩个大整数数组的高位开始循环比较,如果俩个位置上的值不相等就返回位置上的比较判断语句。
3.减法函数的实现
在进行减法操作的时候我们依旧需要先声明俩个临时使用的变量,t用来存储总数并且判断是否有借位,vector<int>C 用来存储减后的数据.
For循环内部,我们是从个位开始进行减法操作和我们手算的时候的操作相同,所以我们循环条件是从0开始进行操作。
我们再每次进行减去另外一个大整数的位数时我们都需要用前面的大整数先减去借位,之后判断是否超出B的位数如果没有就减去它。
因为我们t可能会是负数,所以我们进行借位操作,所以我们在将数据推入C数组的时候需要先进行+10操作后再进行求余。
然后判断t是大于0还是小于0,也就是给下次循环前先查查是否有借位。
4.主函数的实现
首先和加法一样,我们需要用字符串来进行大整数的输入,再通过逆向循环进行压入操作。
减法不同的是,重点在判断A和B谁大的操作,也就是if对比操作是A大就进行sub(A,B)因为这个先后是有讲究的,我们要把数大的放在前面,保证循环操作能进行到底.如果A小就是进行sub(B,A)并且要在最后的输出前先进行手动增加‘-’的操作.