= Solution
Add corresponding coefficients, treating missing coefficients as zero:
``
function Add(a, b: number): number
L := max(len(a), len(b))
new(result, L)
for i := 0 to L-1 do
result[i] := 0
if i < len(a) then result[i] := result[i] + a[i]
if i < len(b) then result[i] := result[i] + b[i]
Normal(result)
return result
``
By the <digit-array integer representation>, the raw result has value $\operatorname{val}(a)+\operatorname{val}(b)$. <Carry normalization of a digit array> produces a normalized result, including any final carry. Both input arrays remain unchanged, so the operation also works when `a` and `b` alias each other.
Back to article page