Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string Add(int toAdd)
- {
- string result = "";
- int reminder = 0;
- for (int i = number.size() - 1; i >= 0; i--)
- {
- char num = number[i];
- int n = num - '0';
- int second = toAdd % 10;
- toAdd /= 10;
- n += second + reminder;
- reminder = 0;
- if (n >= 10)
- {
- reminder = 1;
- n -= 10;
- }
- result.insert(result.begin(), (char)n + '0');
- }
- if (reminder)
- {
- result.insert(result.begin(), (char)reminder + '0');
- }
- return result;
- }
- string Subtract(int toSub)
- {
- string result = "";
- int outcome, carry = 0;
- for (int i = number.size() - 1; i >= 0; i--)
- {
- char num = number[i];
- int n = num - '0';
- int second = toSub % 10;
- toSub /= 10;
- outcome = (n - second) - carry;
- if (outcome < 0)
- {
- outcome += 10;
- carry = 1;
- result.insert(result.begin(), (char)outcome + '0');
- }
- else
- {
- carry = 0;
- result.insert(result.begin(), (char)outcome + '0');
- }
- }
- return result;
- }
- string Mulitply(int toMultiply)
- {
- string toMulti = to_string(toMultiply);
- int n = number.size();
- int m = toMulti.size();
- string res(m + n, '0');
- for (int i = n - 1; i >= 0; i--) {
- for (int j = m - 1; j >= 0; j--) {
- int p = (number[i] - '0') * (toMulti[j] - '0') + (res[i + j + 1] - '0');
- res[i + j + 1] = p % 10 + '0';
- res[i + j] += p / 10;
- }
- }
- return res;
- }
- string Division(int divisor) {
- string ans;
- int idx = 0;
- int temp = number[idx] - '0';
- while (temp < divisor)
- temp = temp * 10 + (number[++idx] - '0');
- while (number.size() > idx) {
- ans += (temp / divisor) + '0';
- temp = (temp % divisor) * 10 + number[++idx] - '0';
- }
- if (ans.length() == 0)
- return "0";
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement