用c++写高精度加法
时间: 2024-03-02 17:46:15 浏览: 67
C++中可以使用字符串来表示大整数,并通过模拟手工计算的方式实现高精度加法。下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
std::string addStrings(std::string num1, std::string num2) {
std::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;
result.push_back('0' + sum % 10);
i--;
j--;
}
std::reverse(result.begin(), result.end());
return result;
}
int main() {
std::string num1 = "123456789";
std::string num2 = "987654321";
std::string sum = addStrings(num1, num2);
std::cout << "Sum: " << sum << std::endl;
return 0;
}
```
在上面的代码中,`addStrings`函数接受两个字符串参数`num1`和`num2`,并返回它们的高精度加法结果。算法通过从字符串的末尾开始逐位相加,并将进位保存起来,最后将结果反转得到最终的和。
阅读全文