一,利用字符串
C++中实现高精度加法可以利用字符串来存储大整数,并逐位进行相加。
#include <iostream>
#include <string>
using namespace std;
string add(string num1, string num2) {
string result; // 存储结果的字符串
int carry = 0; // 进位
// 从个位开始逐位相加
for (int i = num1.length() - 1, j = num2.length() - 1; i >= 0 || j >= 0 || carry; i--, j--) {
int digit1 = i >= 0 ? num1[i] - '0' : 0;
int digit2 = j >= 0 ? num2[j] - '0' : 0;
int sum = digit1 + digit2 + carry;
carry = sum / 10;
sum %= 10;
result.insert(0, to_string(sum)); // 将当前位的结果插入到结果字符串的最前面
}
return result;
}
int main() {
string num1 = "123456789";
string num2 = "987654321";
string sum = add(num1, num2);
cout << "Sum: " << sum << endl;
return 0;
}