Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. using namespace std;
  2. const int base = pow(2, 32);
  3.  
  4. void readL(string s, vector<unsigned int> &a){
  5. for (int i=(int)s.length(); i>0; i-=9)
  6. if (i < 9)
  7. a.push_back (atoi (s.substr (0, i).c_str()));
  8. else
  9. a.push_back (atoi (s.substr (i-9, 9).c_str()));
  10. }
  11.  
  12. void printL(vector<unsigned int> &a){
  13. if (a.empty()){
  14. cout << 0;
  15. }else{
  16. cout << a.back();
  17. }
  18. for (int i=(int)a.size()-2; i>=0; --i)
  19. cout << (a[i]);
  20. }
  21.  
  22. void summL(vector<unsigned int> &a, vector<unsigned int> &b){
  23. int carry = 0;
  24. for (size_t i=0; i<max(a.size(),b.size()) || carry; ++i) {
  25. if (i == a.size())
  26. a.push_back (0);
  27. a[i] += carry + (i < b.size() ? b[i] : 0);
  28. carry = a[i] >= base;
  29. if (carry) a[i] -= base;
  30. }
  31. printL(a);
  32. }
  33.  
  34. int main(){
  35. vector<unsigned int> a, b;
  36. string str1, str2;
  37. cin >> str1;
  38. cin >> str2;
  39. readL(str1, a);
  40. readL(str2, b);
  41. summL(a, b);
  42. return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement