= Solution
Allocate a fresh array and copy every digit:
``
function CopyNum(n: number): number
new(result, len(n))
for i := 0 to len(n)-1 do
result[i] := n[i]
return result
``
Every coefficient in the <digit-array integer representation> is unchanged, so the value is unchanged. The new array shares no storage with `n`; assigning one pointer to the other would instead create <reference aliasing>. Since the entries are integers, copying the entries also gives the required <deep copy> of this representation.
Back to article page