用vector写一个简单的C++高精度加法
时间: 2023-10-16 13:09:19 浏览: 80
c++实现高精度加法
好的,这个问题可以回答。以下是一个简单的 C++ 实现:
```
#include <iostream>
#include <vector>
using namespace std;
vector<int> add(vector<int> a, vector<int> b) {
vector<int> c;
int t = 0;
for (int i = 0; i < a.size() || i < b.size(); i++) {
if (i < a.size()) t += a[i];
if (i < b.size()) t += b[i];
c.push_back(t % 10);
t /= 10;
}
if (t) c.push_back(1);
return c;
}
int main() {
string sa, sb;
cin >> sa >> sb;
vector<int> a, b;
for (int i = sa.size() - 1; i >= 0; i--) a.push_back(sa[i] - '0');
for (int i = sb.size() - 1; i >= 0; i--) b.push_back(sb[i] - '0');
vector<int> c = add(a, b);
for (int i = c.size() - 1; i >= 0; i--) cout << c[i];
cout << endl;
return 0;
}
```
以上代码实现了两个大数相加,其中每个大数用一个 vector<int> 存储,每一位上存储一个数字。首先将输入的字符串转为 vector<int>,然后从低位到高位逐位相加,将结果存储在一个新的 vector<int> 中,最后输出结果的每一位即可。
注:以上代码仅为示例代码,可能存在一些问题,仅供参考。
阅读全文