Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. std::string _add(std::string a, std::string b)
  2. {
  3.     std::string temp = ""; //return value
  4.  
  5.     std::string* bigger_string;
  6.     if (a.length() >= b.length()) bigger_string = &a;
  7.     else bigger_string = &b;
  8.  
  9.     std::string * smaller_string;
  10.     if (b.length() <= a.length()) smaller_string = &b;
  11.     else smaller_string = &a;
  12.  
  13.     std::reverse(bigger_string->begin(), bigger_string->end());
  14.     std::reverse(smaller_string->begin(), smaller_string->end());
  15.  
  16.     int buffor = 0;
  17.     for (int i = 0; i < smaller_string->length(); i++)
  18.     {
  19.         int _a = (int)(*bigger_string)[i] - 48;
  20.         int _b = (int)(*smaller_string)[i] - 48;
  21.         int _temp = _a + _b + buffor;
  22.  
  23.         temp += std::to_string(_temp % 10);
  24.         buffor = _temp / 10;
  25.     }
  26.     for (int i = smaller_string->length(); i < bigger_string->length(); i++)
  27.     {
  28.         int _a = (int)(*bigger_string)[i] - 48;
  29.         int _temp = _a + buffor;
  30.  
  31.         temp += std::to_string(_temp % 10);
  32.         buffor = _temp / 10;
  33.     }
  34.     if (buffor > 0)
  35.     {
  36.         temp += std::to_string(buffor);
  37.     }
  38.  
  39.     std::reverse(temp.begin(), temp.end());
  40.  
  41.     return temp;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement