#include using namespace std; /** * 功能:高精度加法模板 * @param A * @param B * @return */ vector add(vector &A, vector &B) { //声明结果数组C vector C; //以长的为根基,进行计算 if (A.size() < B.size()) return add(B, A); //进位 int t = 0; //列竖式进行计算 for (int i = 0; i < A.size(); i++) { t += A[i];//进位加法 if (i < B.size()) t += B[i]; //存在这一位,就加 C.push_back(t % 10);//保留余数 t /= 10;//进位 } //最后可能还有进位 if (t) C.push_back(t); //返回 return C; } int main() { //以字符串形式读入 string a, b; cin >> a >> b; //1、准备动作,将字符串的每一位,反序放入到整数运算数组中 vector A, B, C; 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'); //2、调用模板进行计算 C = add(A, B); //3、输出结果,需要倒序噢 for (int i = C.size() - 1; i >= 0; i--)printf("%d", C[i]); return 0; }