> remainder += 10;
But it's only worth 1 in the next column isn't it.

If you do
456
789 +
on paper, 6+9 is 17, so it's 7 and carry 1 (not 10)