高精度加法模板
#include <bits/stdc++.h>
using namespace std;
vector<int> add(vector<int> &A, vector<int> &B){
if(A.size() < B.size()) return add(B, A); //位数大的放前面
vector<int> C; //存放和
int t = 0; //t:进位 别忘记初始化!
for(int i = 0; i < A.size(); i++){
t += A[i];
if(i < B.size()) t += B[i];
C.push_back(t % 10); //和的i位上的数
t /= 10; //更新进位
}
if(t) C.push_back(t);
return C;
}
int main(){
string a, b; //用字符串读高精度的数
vector<int> A, B; //用vector数组存高精度的数
cin >> a >> b;
//按 个位 十位 百位...n位 存放
for(int i = a.size() - 1; i >= 0; i--) A.push_back(a[i] - '0'); //将字符转换成数值
for(int i = b.size() - 1; i >= 0; i--) B.push_back(b[i] - '0');
vector<int> C = add(A, B); //高精度和也用vector存
for(int i = C.size() - 1; i >= 0; i--) cout << C[i]; //别忘记也要倒着输出
cout << endl;
return 0;
}
标签:高精度,int,back,vector,加法,push,size
From: https://www.cnblogs.com/csai-H/p/16931417.html