Advertisement
Kaseil

bigNumberAdd

Mar 16th, 2023
534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. void addNum(string& orgStr, string addStr) {
  2.     string biggerStr, smallerStr;
  3.     int frontNum=0;
  4.  
  5.     if (orgStr.size() >= addStr.size()) {
  6.         biggerStr = orgStr;
  7.         smallerStr = addStr;
  8.     }
  9.     else {
  10.         biggerStr = addStr;
  11.         smallerStr = orgStr;
  12.     }//end of define biggerStr and smallerStr
  13.  
  14.     for (int i = 0; i < smallerStr.size(); i++) {
  15.         int bigIndex = biggerStr.size() - i - 1;
  16.         int smaIndex = smallerStr.size() - i - 1;
  17.  
  18.         biggerStr[bigIndex] += smallerStr[smaIndex] - '0';
  19.     }//end of biggerStr add
  20.  
  21.     for (int i = 0; i < biggerStr.size(); i++) {
  22.         int bigIndex = biggerStr.size() - i - 1;
  23.  
  24.         while (biggerStr[bigIndex] > '9') {
  25.             if (bigIndex == 0) {
  26.                 frontNum++;
  27.                 biggerStr[bigIndex] -= 10;
  28.             }//case of index is zero
  29.             else {
  30.                 biggerStr[bigIndex] -= 10;
  31.                 biggerStr[bigIndex - 1] += 1;
  32.             }//case of index is not zero
  33.  
  34.         }//end of while in for
  35.     }//end of sorting str
  36.  
  37.     if (frontNum != 0) {
  38.         string tempStr = "0";
  39.         tempStr[0] = '0' + frontNum;
  40.         biggerStr = tempStr+biggerStr;
  41.     }
  42.  
  43.  
  44.     //exchanege of orgStr;
  45.     orgStr = biggerStr;
  46. }//total time complex is n
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement