c++高精度加法函数
时间: 2023-12-15 20:31:44 浏览: 71
使用C++的string实现高精度加法运算的实例代码
5星 · 资源好评率100%
以下是一个C++实现高精度加法的函数示例:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string add(string s1, string s2) {
string result = ""; // 存储结果的字符串
int carry = 0; // 进位
int len1 = s1.size(), len2 = s2.size();
// 将两个字符串反转,方便从低位到高位相加
reverse(s1.begin(), s1.end());
reverse(s2.begin(), s2.end());
// 从低位到高位相加
for (int i = 0; i < max(len1, len2); i++) {
int num1 = i < len1 ? s1[i] - '0' : 0;
int num2 = i < len2 ? s2[i] - '0' : 0;
int sum = num1 + num2 + carry;
result += to_string(sum % 10); // 将个位数加入结果字符串
carry = sum / 10; // 计算进位
}
if (carry > 0) { // 如果最高位有进位,加入结果字符串
result += to_string(carry);
}
reverse(result.begin(), result.end()); // 反转结果字符串
return result;
}
int main() {
string s1 = "12345678901234567890";
string s2 = "98765432109876543210";
cout << add(s1, s2) << endl; // 输出:111111111011111111100
return 0;
}
```
阅读全文