用C++实现高精度加法
时间: 2024-05-07 12:21:20 浏览: 83
c++实现高精度加法
高精度加法可以用字符串来实现,即将每个数看作一个字符串,然后按照竖式加法的方式进行计算,最后将结果转换为字符串即可。
以下是用C++实现高精度加法的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string add(string num1, string num2) {
int carry = 0; // 进位
string result = ""; // 结果
int i = num1.length() - 1, j = num2.length() - 1; // i和j分别指向num1和num2的最后一位
// 从后向前遍历num1和num2,每次将对应位置上的数相加
while (i >= 0 || j >= 0) {
int x = i >= 0 ? num1[i] - '0' : 0; // 获取num1当前位置上的数,如果已经遍历完则为0
int y = j >= 0 ? num2[j] - '0' : 0; // 获取num2当前位置上的数,如果已经遍历完则为0
int sum = x + y + carry; // 计算当前位置上的和
result = to_string(sum % 10) + result; // 将当前位置上的和的个位数添加到结果中
carry = sum / 10; // 计算进位
i--;
j--;
}
if (carry != 0) { // 如果最后还有进位,将进位加到结果的最前面
result = to_string(carry) + result;
}
return result;
}
int main() {
string num1, num2;
cin >> num1 >> num2;
cout << add(num1, num2) << endl;
return 0;
}
```
该代码中主要使用了字符串操作,将每个数看作一个字符串,然后从后向前遍历进行计算,最终将结果转换为字符串输出。
阅读全文