Advertisement

优化版大整数减法

阅读量:

前言

在大整数的减法运算过程中,被减数与减数可能分别带有正或负的符号,且两者之间的数值大小关系也无法预先确定,因此若要全面分析大整数减法的相关问题,所涉及的情形将变得极为复杂。

本研究仅针对大整数减法中的特定情形展开探讨,设定被减数与减数均为正数,并且确保被减数的数值大于减数。

思路

1 . 要完成大整数的减法运算,同样需要实现其输入与输出功能,此处对输入过程进行了简化处理,数据存储方式依旧沿用小端存储模式。
2 . 由于仅考虑被减数大于减数的情形,因此可以直接执行减法操作。若计算结果为负数,则需从前一位借取1,并将当前位数值增加10。
3 . 完成减法运算后,还需判断结果的有效位数。可预先设定结果长度与被减数相同,从最高位依次检查每一位数值,若某一位为0,则相应减少长度值。

代码

复制代码
    #include <bits/stdc++.h>
    #define N 110
    using namespace std;
    // 同样,这里采用小端序存储
    int a_digits[N] = {8, 6, 3, 2}, a_len = 4;
    int b_digits[N] = {7, 9, 9},	b_len = 3;
    
    int ans_digits[N], ans_len;
    in

全部评论 (0)

还没有任何评论哟~