Как удалить заданное число, через тип данных integer и real?

вот попалась такая задачка: Дано целое число N(>0). Вводится цифра A(0<=A<=9). Вывести число, которое получится путем удаления всех вхождений заданной цифры A из десятичной записи члена N (например, из числа 12325 и цифры 2 получится 135). Число, в котором все цифры - A, должно быть преобразовано в 0. Незначающие нули в старших разрядах полученного числа печатать ну нужно. Я не очень понимаю как именно удалить цифры. Вот код:

var N:=readinteger('N=');
A:=readinteger('A=');
begin
while((N>0) and ((A>=0)and(A<=9))) do
  begin
    if (N mod 10 = A) then 
      N:=N div 10;
  end;
println(N);
end.

Ответы (1 шт):

Автор решения: MBo

Значение А проверять не надо. А надо собрать новое число из годных цифр.
Примерно так (не проверял):

p = 1; //степень десятки
res := 0;  //новое число
while N > 0 do begin
   d := N mod 10;
   if d <> A then begin
      res := res + p * d;
      p := p * 10;
   end;
   N := N div 10;
end;
→ Ссылка