El código que te envie hace eso, la parte (1 + (i mod 2) ) realiza la multiplicación por 1 o por 2 según el cado, el error de la resta deberia ser algo como (falta optimizar otra vez).
Código Delphi
[-]
if resultado mod 10 > 5 then
resultado := suma mod 10
else
resultado := suma - (suma div 10)*10;
saludos