题解 | #高精度整数加法#
高精度整数加法
https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
#include <iostream> #include <algorithm> #include <cstring> #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 a, b; cin >> a >> b; vector<int> A, B; 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'); auto C = add(A, B); for(int i = C.size() - 1; i >= 0; i --) printf("%d", C[i]); return 0; } // 64 位输出请用 printf("%lld")