Вот мой С++ код, переписанный на Паскаль
Код:
var
number : string;
sum, ost, i, err, digit : integer;
got : boolean;
Begin
readln(number);
for i := 1 to length(number) do begin
Val(number[i], digit, err);
sum := sum + digit;
end;
ost := 3 - (sum mod 3);
got := false;
for i := 1 to length(number) do begin
Val(number[i], digit, err);
if (digit <= 9-ost) and (not got) then begin
got := true;
digit := digit + ost;
while digit <= 6 do digit := digit + 3;
write(digit);
end else begin
if (i = length(number)) and (not got) then begin
got := true;
digit := digit - ost;
write(digit);
end else
write(digit);
end;
end;
End.