当前位置:首页C++程序设计 > 正文

c++大整数加法

作者:野牛程序员:2023-06-19 16:19:19C++程序设计阅读 2961

在C++中进行大整数加法可以通过自定义数据结构和算法来实现。以下是一个简单的示例代码:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

// 自定义大整数加法函数
string addBigIntegers(const string& num1, const string& num2) {
    string result;
    int carry = 0;
    int i = num1.length() - 1;
    int j = num2.length() - 1;

    while (i >= 0 || j >= 0 || carry != 0) {
        int digit1 = (i >= 0) ? num1[i] - '0' : 0;
        int digit2 = (j >= 0) ? num2[j] - '0' : 0;

        int sum = digit1 + digit2 + carry;
        carry = sum / 10;
        int digit = sum % 10;

        result.push_back(digit + '0');

        i--;
        j--;
    }

    // 将结果字符串翻转
    reverse(result.begin(), result.end());

    return result;
}

int main() {
    string num1 = "12345678901234567890";
    string num2 = "98765432109876543210";

    string sum = addBigIntegers(num1, num2);

    cout << "Sum: " << sum << endl;

    return 0;
}

在这个示例中,我们使用了addBigIntegers函数来执行大整数的加法操作。该函数接受两个参数,分别是要相加的两个大整数(以字符串的形式表示)。函数通过逐位相加,并使用一个变量carry来处理进位。最终得到的结果以字符串的形式返回。

main函数中,我们定义了两个大整数num1num2,并调用addBigIntegers函数进行相加。最后,我们输出结果。

请注意,该示例只适用于非负的大整数相加。如果需要处理负数或更复杂的大整数操作,可能需要进一步的修改。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击