高精度加法函数实现c++
时间: 2024-08-15 14:01:24 浏览: 79
在C++中实现高精度加法函数通常涉及到大整数操作,因为标准库提供的`+`运算符可能不足以处理超过数据类型范围的大数值。一种常见的做法是使用字符串或数组来存储数字,并自定义一个算法来进行逐位相加。这里提供一个简单的基于字符串的高精度加法函数示例:
```cpp
#include <string>
std::string addStrings(const std::string& num1, const std::string& num2) {
if (num1.empty() || num2.empty()) return num1 + num2; // 如果有一个为空直接返回另一个
int carry = 0;
std::string result;
for (size_t i = num1.size() - 1, j = num2.size() - 1; i >= 0 || j >= 0; --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;
result.push_back('0' + sum % 10);
}
// 如果还有进位,添加到结果前部
if (carry > 0) result.insert(0, 1, '1' + carry);
return carry == 0 ? result : addStrings("1" + result, "0");
}
int main() {
std::string str1 = "123456789";
std::string str2 = "987654321";
std::cout << addStrings(str1, str2) << std::endl;
return 0;
}
```
阅读全文