高精度算法(减法)

高精度算法(减法)

  1. 减法,是一个会出现负数的操作,我们在高精度算法里我们需要先对其进行判断俩个高精度整数谁更大这样我们可以判断输出的时候是正数还是负数,我们倘若是负数我们需要手动进行-的操作。

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)并且要在最后的输出前先进行手动增加‘-’的操作.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值