Given two positive numbers which are represented in strings, return the sum, difference, product, quotient and remainder of the two numbers.

A solution is to have the string converted to an array where digits are store in a reversed order and then do the calculation on each digit.

## I. a + b

The implementation is quite straight-forward. Just be care of the carry.

## II. a - b

Simplar to a + b, but be aware of the case when a is smaller than b. And don’t forget to remove the leading 0 in the difference.

## III. a * b

The solution is to mimic the process of doing multiplication, but be aware of the the index.

LeetCode: 43. Multiply Strings

## IV. a / b and a % b

The idea is to use subtraction - repeat the process of a minus b until a < b. But this whole process is time consuming. To improve performance, we don’t have to do a - b each time, but we can try something like a - b*10. For example, a = 2981, b = 13, because the difference between the length of a and b is 2, so the dividend can be initailized to be 1300, and when the divisor become less than dividend, a 0 can be removed from the dividend, as shown in the table below. This is actually how we do subtraction.

divisor dividend quotient remainder
2981 1300 100 1681
1681 1300 200 381
381 130 210 251
251 130 220 121
121 13