c++高精度三数相加代码
时间: 2024-03-03 15:45:29 浏览: 146
C++高精度代码及代码解释
当涉及到高精度计算时,C++提供了一种称为大整数的数据类型来处理超过普通整数范围的数字。以下是一个示例代码,用于实现高精度三数相加:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 大整数相加函数
vector<int> add(vector<int>& num1, vector<int>& num2) {
int carry = 0;
vector<int> result;
int i = num1.size() - 1;
int j = num2.size() - 1;
while (i >= 0 || j >= 0 || carry > 0) {
int sum = carry;
if (i >= 0) {
sum += num1[i];
i--;
}
if (j >= 0) {
sum += num2[j];
j--;
}
result.insert(result.begin(), sum % 10);
carry = sum / 10;
}
return result;
}
int main() {
string str1, str2, str3;
cout << "请输入第一个数字:";
cin >> str1;
cout << "请输入第二个数字:";
cin >> str2;
cout << "请输入第三个数字:";
cin >> str3;
vector<int> num1, num2, num3;
for (int i = str1.size() - 1; i >= 0; i--) {
num1.push_back(str1[i] - '0');
}
for (int i = str2.size() - 1; i >= 0; i--) {
num2.push_back(str2[i] - '0');
}
for (int i = str3.size() - 1; i >= 0; i--) {
num3.push_back(str3[i] - '0');
}
vector<int> result = add(add(num1, num2), num3);
cout << "三数相加的结果为:";
for (int i = 0; i < result.size(); i++) {
cout << result[i];
}
cout << endl;
return 0;
}
```
这段代码中,我们使用了一个vector来存储大整数的每一位数字,然后通过逐位相加的方式实现了高精度的三数相加。输入的数字可以是任意长度的整数。
阅读全文