以下是使用C++语言编写的高精度加法算法示例:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

string addStrings(string num1, string num2) {
    int i = num1.size() - 1;
    int j = num2.size() - 1;
    int carry = 0;
    string result = "";
    
    while (i >= 0 || j >= 0 || carry != 0) {
        int x = i >= 0 ? num1[i] - '0' : 0;
        int y = j >= 0 ? num2[j] - '0' : 0;
        int sum = x + y + carry;
        carry = sum / 10;
        result += to_string(sum % 10);
        i--;
        j--;
    }
    
    reverse(result.begin(), result.end());
    return result;
}

int main() {
    string num1 = "123456789";
    string num2 = "987654321";
    
    string sum = addStrings(num1, num2);
    
    cout << "Sum: " << sum << endl;
    
    return 0;
}

上述代码中的 addStrings 函数实现了高精度加法。它使用了两个指针 ij 分别指向两个输入数字的最低位,然后从低位到高位逐位相加,并将进位 carry 保留下来。最后,将结果字符串反转并返回。

main 函数中,我们定义了两个输入数字 num1num2,并使用 addStrings 函数计算它们的和。最后,输出结果。

请注意,上述示例中的输入数字 num1num2 以字符串形式给出,以避免整数溢出问题

用c++写高精度加法

原文地址: https://www.cveoy.top/t/topic/ihdO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录