0
点赞
收藏
分享

微信扫一扫

大数加法(加、减、乘、除)代码

探头的新芽 2022-04-18 阅读 75
其他java

//大数加法
string AddString(string num1, string num2)
{
    int end1 = num1.size() - 1, end2 = num2.size() - 1;
    string ret; //存储两个字符串相加后的结果
    int carry = 0; //进位(初始时进位设置为0)
    while (end1 >= 0 || end2 >= 0)
    {
        //1、取出num1中本次待相加的数字
        int a = 0;
        if (end1 >= 0)
        {
            a = num1[end1] - '0';
            end1--;
        }
        //2、取出num2中本次待相加的数字
        int b = 0;
        if (end2 >= 0)
        {
            b = num2[end2] - '0';
            end2--;
        }
        //3、将这两个数字相加(注意加上进位)
        int sum = a + b + carry;
        //4、判断是否需要进位
        if (sum > 9)
        {
            sum -= 10;
            carry = 1; //需要进位,将carry设置为1
        }
        else
        {
            carry = 0; //不需要进位,将carry设置为0
        }
        ret += (sum + '0');
    }
    if (carry != 0) //判断是否还需进位(可能两个数的最高位相加后会进位)
        ret += '1';

    reverse(ret.begin(), ret.end()); //将ret字符串进行反转
    return ret; //返回两个字符串相加后的结果
}

 

举报

相关推荐

0 条评论