InasAwad

BigInt

Apr 17th, 2021
792
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. string Add(int toAdd)
  2.     {
  3.         string result = "";
  4.         int reminder = 0;
  5.         for (int i = number.size() - 1; i >= 0; i--)
  6.         {
  7.             char num = number[i];
  8.             int n = num - '0';
  9.             int second = toAdd % 10;
  10.             toAdd /= 10;
  11.             n += second + reminder;
  12.             reminder = 0;
  13.             if (n >= 10)
  14.             {
  15.                 reminder = 1;
  16.                 n -= 10;
  17.             }
  18.             result.insert(result.begin(), (char)n + '0');
  19.         }
  20.         if (reminder)
  21.         {
  22.             result.insert(result.begin(), (char)reminder + '0');
  23.         }
  24.         return result;
  25.     }
  26.  
  27.  
  28.     string Subtract(int toSub)
  29.     {
  30.         string result = "";
  31.         int outcome, carry = 0;
  32.         for (int i = number.size() - 1; i >= 0; i--)
  33.         {
  34.             char num = number[i];
  35.             int n = num - '0';
  36.             int second = toSub % 10;
  37.             toSub /= 10;
  38.             outcome = (n - second) - carry;
  39.             if (outcome < 0)
  40.             {  
  41.                 outcome += 10;
  42.                 carry = 1;
  43.                 result.insert(result.begin(), (char)outcome + '0');
  44.            
  45.             }
  46.             else
  47.             {
  48.                 carry = 0;
  49.                 result.insert(result.begin(), (char)outcome + '0');
  50.             }
  51.         }
  52.         return result;
  53.     }
  54.  
  55.     string Mulitply(int toMultiply)
  56.     {
  57.         string toMulti = to_string(toMultiply);
  58.         int n = number.size();
  59.         int m = toMulti.size();
  60.         string res(m + n, '0');
  61.  
  62.         for (int i = n - 1; i >= 0; i--) {
  63.             for (int j = m - 1; j >= 0; j--) {
  64.                 int p = (number[i] - '0') * (toMulti[j] - '0') + (res[i + j + 1] - '0');
  65.                 res[i + j + 1] = p % 10 + '0';
  66.                 res[i + j] += p / 10;
  67.             }
  68.         }
  69.         return res;
  70.     }
  71.  
  72.     string Division(int divisor) {
  73.             string ans;
  74.             int idx = 0;
  75.             int temp = number[idx] - '0';
  76.             while (temp < divisor)
  77.                 temp = temp * 10 + (number[++idx] - '0');
  78.  
  79.             while (number.size() > idx) {
  80.                 ans += (temp / divisor) + '0';
  81.  
  82.                 temp = (temp % divisor) * 10 + number[++idx] - '0';
  83.             }
  84.  
  85.             if (ans.length() == 0)
  86.                 return "0";
  87.             return ans;
  88.         }
  89.    
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×