Fiz uma pequena correção (editei a resposta acima), o if (remainingValue == 0) tem que ficar fora do for.