题解 | #高精度整数加法#
高精度整数加法
https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
#include <iostream> #include <vector> using namespace std; int main() { string a, b; cin >> a >> b; int flag = 0; vector<int> vv; int i = a.length() - 1, j = b.length() - 1; for (; i >= 0 && j >= 0; i--, j--) { int ai = a[i] - '0'; int bi = b[j] - '0'; // cout<<(ai+bi+flag)%10<<endl; vv.push_back((ai + bi + flag) % 10); flag = (ai + bi + flag) / 10; } if(i<0){ for(int k=j;k>=0;k--){ int bi = b[k] - '0'; vv.push_back((bi + flag) % 10); flag = (bi + flag) / 10; }; } if(j<0){ for(int k=i;k>=0;k--){ int ai = a[k] - '0'; vv.push_back((ai + flag) % 10); flag = (ai + flag) / 10; }; } if(flag==1)vv.push_back(1); for(auto it = vv.rbegin();it!=vv.rend();it++)cout<<*it; } // 64 位输出请用 printf("%lld")